Socket通信原理,C#实现
一.服务器端:
1. 创建Socket,绑定本机IP与一固定端口:
IPEndPoint localPoint = new IPEndPoint(ipAddr,port);
Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
socket.Bind(localPoint);
2. 开始监听:
socket.Listen(10);
3. 创建线程接收客户端的请求,一旦接收请求,则创建一代理Socket来处理与客户端的通信,这样做的好处是监听端口始终只起监听作用,用于接收客户端的其他请求:
while (true)
{
proxySocket= socket.Accept();
…
}
4. 使用此代理Socket来进行与客户端的通信。
proxySocket.Receive();
proxySocket.Send();
二.客户端:
1. 创建Socket,连接到远程服务器,注意IP与端口为远程服务器端的IP和端口:
IPEndPoint remotePoint = new IPEndPoint(ip,port);
Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
socket.Connect(remotePoint);
2. 连接成功后,用此Socket与服务器端通信。
三.原理图