TCP通讯-客户端链接
- 手机
- 2025-09-02 10:57:02

一、TCP客户端 效果展示 二、准备任务 1.创建画面 2. 创建服务端,与客户端进行相连接 三、控件的分体效果 1.窗体加载 private void Form1_Load(object sender, EventArgs e) { System.Diagnostics.Process.Start(@"D:\17_SocketTool\SocketTool.exe"); } 2.声明客户端和线程 public Socket clentsocket; Thread t1; 3.ListBox 运行过程画面展示 private void AddMsg(string msg) { listBox1.BeginInvoke(new Action<string>(str => { listBox1.Items.Add(str); }), msg); } 4.链接服务器按钮功能 private void btnstart_Click(object sender, EventArgs e) { btnstart.Enabled = false; btncancel.Enabled = true; clentsocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); IPAddress iPAddress = IPAddress.Parse(textBox1.Text); int port=int.Parse(textBox2.Text); IPEndPoint iPEndPoint=new IPEndPoint(iPAddress, port); try { clentsocket.Connect(iPEndPoint); AddMsg($"{DateTime.Now.ToString("HH-mm-sss")}链接成功"); } catch (Exception ex) { AddMsg(ex.ToString() ); } //接收消息 t1 = new Thread(Received); t1.IsBackground = true; t1.Start(clentsocket); } private void Received(object o) { Socket socket=o as Socket; while(true) { byte[]buffer=new byte[1024*1024*2]; int r=socket.Receive(buffer); if(r==0) { return; } string msg=Encoding.UTF8.GetString(buffer); AddMsg(msg); } } 5.断开服务器按钮功能 private void btncancel_Click(object sender, EventArgs e) { btnstart.Enabled = true; btncancel.Enabled = false; if(clentsocket!=null) { clentsocket.Shutdown(SocketShutdown.Both ); clentsocket.Close(); t1.Abort(); } } 6.发送信息功能实现 private void btnsend_Click(object sender, EventArgs e) { string msg=textBox3.Text; byte[]bytes=Encoding.UTF8.GetBytes(msg); try { clentsocket.Send(bytes); AddMsg("发送成功"); textBox3.Clear(); }catch (Exception ex) { throw; } } 全部代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace Tcp客户端 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public Socket clentsocket; Thread t1; private void btnstart_Click(object sender, EventArgs e) { btnstart.Enabled = false; btncancel.Enabled = true; clentsocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); IPAddress iPAddress = IPAddress.Parse(textBox1.Text); int port=int.Parse(textBox2.Text); IPEndPoint iPEndPoint=new IPEndPoint(iPAddress, port); try { clentsocket.Connect(iPEndPoint); AddMsg($"{DateTime.Now.ToString("HH-mm-sss")}链接成功"); } catch (Exception ex) { AddMsg(ex.ToString() ); } //接收消息 t1 = new Thread(Received); t1.IsBackground = true; t1.Start(clentsocket); } private void Received(object o) { Socket socket=o as Socket; while(true) { byte[]buffer=new byte[1024*1024*2]; int r=socket.Receive(buffer); if(r==0) { return; } string msg=Encoding.UTF8.GetString(buffer); AddMsg(msg); } } private void btncancel_Click(object sender, EventArgs e) { btnstart.Enabled = true; btncancel.Enabled = false; if(clentsocket!=null) { clentsocket.Shutdown(SocketShutdown.Both ); clentsocket.Close(); t1.Abort(); } } private void btnsend_Click(object sender, EventArgs e) { string msg=textBox3.Text; byte[]bytes=Encoding.UTF8.GetBytes(msg); try { clentsocket.Send(bytes); AddMsg("发送成功"); textBox3.Clear(); }catch (Exception ex) { throw; } } private void Form1_Load(object sender, EventArgs e) { System.Diagnostics.Process.Start(@"D:\17_SocketTool\SocketTool.exe"); } private void AddMsg(string msg) { listBox1.BeginInvoke(new Action<string>(str => { listBox1.Items.Add(str); }), msg); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (clentsocket != null) { clentsocket.Shutdown(SocketShutdown.Both); clentsocket.Close(); t1.Abort(); } } } } 四、服务端和客户端的区别 在这里我可能给大家讲的不是很全面,你们则其善者而从之就可以了。 服务端就相当于一个大型网络设备, 电脑需要去联网, 同样网络只有被链接了才能被体会他的重要性。服务端和客户端是相互的,要想他们两个构成链接,肯定需要网口ip和端口数据就像你跟你朋友打电话一样,辅助的工具就是手机 客户端只有和服务端链接之后,他们的对话才算有效。 注意: 服务端的链接是 Bind, 客户端是 Connect
TCP通讯-客户端链接由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“TCP通讯-客户端链接”