您的位置:首页 > 理论基础 > 计算机网络

csharp tcp/ip连接发送消息

2012-02-17 08:32 302 查看
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐