1.服务断代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public partial class Server : Form { private bool lk = true; public Server() { InitializeComponent(); TextBox.CheckForIllegalCrossThreadCalls = false; } private void button1_Click(object sender, EventArgs e) { IPAddress ip = IPAddress.Parse(textBox1.Text); TcpListener server = new TcpListener(ip, int.Parse(textBox2.Text)); server.Start(); TaskFactory tasks = new TaskFactory(); string ipaddress = string.Empty; TcpClient client = null; while (lk) { Console.WriteLine("等待连接。。。"); client = server.AcceptTcpClient(); tasks.StartNew(() => HandleClient(client, ipaddress)).Wait(); } } private void HandleClient(TcpClient tcpclient, string ipadd) { lock (tcpclient) { if (tcpclient == null) { return; } // Buffer for reading data Byte[] bytes = new Byte[1024]; String data = null; // Enter the listening loop. while (tcpclient.Connected) { data = null; NetworkStream stream = tcpclient.GetStream(); int i; if ((i = stream.Read(bytes, 0, bytes.Length)) != 0) { data = System.Text.Encoding.UTF8.GetString(bytes, 0, i); byte[] msg = System.Text.Encoding.UTF8.GetBytes(data); //stream.Write(msg, 0, msg.Length); textBox3.AppendText(data); } tcpclient.Close(); } } } }
2.客户端代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public partial class Form1 : Form { public Form1() { InitializeComponent(); } TcpClient client = null; private void button1_Click(object sender, EventArgs e) { client = new TcpClient(); try { //if (!client.Connected) // client.Close(); client.Connect(tbIP.Text, int.Parse(tbPort.Text)); // 与服务器连接 } catch (Exception ex) { Console.WriteLine(ex.Message); return; } textBox2.Text = "连接成功"; } private void textBox1_TextChanged(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { button1_Click(null, null); string msg = textBox1.Text; if (msg != "") { NetworkStream streamToServer = client.GetStream(); //创建一个客户端的NetworkStream对象 byte[] buffer = Encoding.UTF8.GetBytes(msg); // 获得缓存 streamToServer.Write(buffer, 0, buffer.Length); // 发往服务器 int numb = streamToServer.Read(buffer, 0, buffer.Length); //接收来自服务器传回来的数据,保存到buffer数组(byte型)中去 string s = Encoding.UTF8.GetString(buffer, 0, buffer.Length); //将数组中的内容转化成string字符串,并且输出 textBox2.AppendText(s + " "); } } }