20240616
By wdhuag
目录
前言:
参考:
一、服务器端:
1、服务器端口绑定:
2、服务器关闭:
二、客户端:
1、客户端连接:
2、客户端断开:
三、通讯:
1、接收信息:
2、发送信息:
四、问题:
五、源码:
前言:
如题,工作中用到了,做个小程序验证一下功能。
参考:
C#使用Socket发送和接收TCP数据示例_c#tcp通信获取对方port-CSDN博客
C#实现Socket_TCP/IP(客户端,服务器端通信)_c# - 获取tcp服务器端口的所有客户端-CSDN博客
c#实现最简单的socket通信(一对一)_c# socket tcp client一对一server-CSDN博客
C#中通过Socket实现一个简单的TCP\IP服务器和客户端的搭建_tcp 服务端 客户端制作c#-CSDN博客
C#服务端与多客户端进行Tcp通信_c# tcp server-CSDN博客
C#中Socket关闭 Close、Dispose、Shutdown、Disconnect - jshchg - 博客园 (cnblogs.com)
Socket的基本操作函数socket()、bind()、listen()、connect()、accept()、recv()、send()、select()、close()_socket函数和bind-CSDN博客
一、服务端:
1、服务端 端口绑定:
private Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);string ip = 服务器IP地址;
int port = 服务器端口;
EndPoint _endPoint = new IPEndPoint(IPAddress.Parse(ip), port);
serverSocket.Bind(_endPoint); //绑定端口
serverSocket.Listen(100); //最大连接数
2、服务端关闭:
serverSocket.Shutdown(SocketShutdown.Both);
serverSocket.Close();
serverSocket.Dispose(); //不释放资源无法重新连接
二、客户端:
1、客户端连接:
private Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);string ip = 服务器ip地址;
int port = 服务器端口;
clientSocket.Connect(new IPEndPoint(IPAddress.Parse(ip), port));
2、客户端断开:
clientSocket.Disconnect(false);
三、通讯:
1、客户端接收信息:
byte[] data = new byte[1024];
int length = clientSocket.Receive(data);
string message = Encoding.UTF8.GetString(data, 0, length);
2、服务端接收信息:
clientSocket = serverSocket.Accept();byte[] data = new byte[1024];
int length = clientSocket.Receive(data);
string message = Encoding.UTF8.GetString(data, 0, length);
3、发送信息:
string cmd = 信息;
clientSocket.Send(Encoding.UTF8.GetBytes(cmd));
四、问题:
1、服务器强行关闭Socket,clientSocket = serverSocket.Accept();这一段会报错。。。如何完美停止?
2、服务端接收需要用多线程,不然只能接收最后连接客户端的信息。
五、源码:
链接: 度盘
提取码:ihdp
END