csharp tcp/ip连接发送消息

来源:互联网 发布:图像分割算法有哪些 编辑:程序博客网 时间:2024/05/16 06:45
public Form6()
{
client = new TcpClient();
InitializeComponent();
}

const int BufferSize = 8192;//缓存大小
Regex r = new Regex(@"(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])");
public TcpClient client;
public NetworkStream stream;
// public Thread thread;
public Thread thread1;
IPEndPoint iep;

private void button1_Click(object sender, EventArgs e)
{
if (this.button1.Text != "取消")
{
if (!r.IsMatch(this.textBox1.Text))
{
MessageBox.Show("你输入的IP地址有错,请检查后重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.textBox1.Focus();
}
else
{
this.button1.Text = "取消";
this.label1.Text = "正向服务器发送连接请求中..........";
string ip = this.textBox1.Text;
int port = Convert.ToInt32(this.textBox2.Text);
iep = new IPEndPoint(IPAddress.Parse(ip), port);

try
{
client.Connect(iep);
stream = client.GetStream();
thread1 = new Thread(new ThreadStart(connect));
thread1.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}

else
{
this.button1.Text = "连接到服务器";

}

}

public void connect()
{
Control.CheckForIllegalCrossThreadCalls = false;
while( true )
{

// NetworkStream MyStream = client.GetStream();
byte [] bytes = new byte[2048];
stream.Read(bytes,0,bytes.Length);
string message = System.Text.Encoding.Default.GetString(bytes);
//Message += message + "\n";
richTextBoxReceive.Text += message + "\n";

}
}

public void send(string msg)
{

try
{

// NetworkStream sendStream = client.GetStream();
Byte[] sendBytes = Encoding.Default.GetBytes(msg);
stream.Write(sendBytes, 0, sendBytes.Length);



}
catch (System.Exception e)
{
richTextBox1.Text = e.ToString(); ;

}



}






private void button3_Click_1(object sender, EventArgs e)
{
send(richTextBox1.Text);
}

   
private void Form6_FormClosed(object sender, FormClosedEventArgs e)
{
if (client.Connected)
{
client.Close();
thread1.Abort();
stream.Close();
}
}



private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if(e.RowIndex>=0)
{
textBox1.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
textBox2.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
}
}

private void button7_Click(object sender, EventArgs e)
{
string name = DateTime.Today.ToString("yyyyMMddhhmmss");
string geshi=".txt";
string path = @"..\..\文件";
path += name;
path += geshi;
FileStream fs;
StreamWriter sw;

fs = new FileStream(path, FileMode.Create);
sw = new StreamWriter(fs, Encoding.Default);
sw.Write(richTextBoxReceive.Text);
sw.Close();
fs.Close();
}




}
原创粉丝点击