C# Winform 通过Socket实现客户端和服务端TCP通信

时间:2022-12-10 16:18:46

操作界面如下:

C# Winform 通过Socket实现客户端和服务端TCP通信

1、声明Socket 第一个参数:寻址方式,第二个参数:传输数据的方式,第三个参数:通信协议

Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

2、声明IP地址和端口号 txtIP和txtPort是前台的控件

IPAddress iPAddress = IPAddress.Parse(txtIP.Text);

int port=int.Parse(txtPort.text);

3、绑定端口

socket.Bind(iPEndPoint);

4、开启侦听 参数是指可以连接的客户端数量

socket.Listen(10);

5、接收客户端连接

socket.Accept();

这里需要注意,Accept()会阻塞线程,直到连接上客户端。如果放在主线程中,会阻塞前台操作。需要创建一个新的线程。Accept()返回一个socket,客户端连接上之后,服务端自动生成一个socket和连接的客端通信。连接成功后,向客户端发送“连接成功!”。

Thread thread = new Thread(() =>
{
  while (true)
  {         
          Socket proxSocket= socket.Accept();

    proxSocket.Send(Encoding.Default.GetBytes("连接成功!"));
  }
});
thread.Start();

使用友善串口调试助手测试。

启动服务器:

C# Winform 通过Socket实现客户端和服务端TCP通信

C# Winform 通过Socket实现客户端和服务端TCP通信