C#TCP异步服务器和客户端咋连接?

C#TCP异步服务器和客户端咋连接?,第1张

TCP服务器端客户端使用的方法不一样,服务器被叫,客户端主叫。服务器程序,设定一个端口用于客户端呼叫连接,声明一个socket绑定到这个端口,侦听客户端呼叫即可。客户端声明一个socket,通过客户端socket对服务器指定端口发出连接请求(主叫),服务器相应此连接请求,建立连接,然后就可以互相通讯了。

服务器和客户端,就是在主叫与被叫上有区别,建立连接后,数据的收发都是一样的。

#三次握手

客户端向服务器端发送SYN包,客户端进入SYN_SEND状态

服务器端收到客户端发送的包返回ACK+SYN包,服务器端进入SYN_RECV状态

客户端收到服务器端返回的包再发回ACK包,客户端进入ESTABLISHED状态,服务器端收到包也进入ESTABLISHED状态

客户端状态:SYN_SENDE STABLISHED

服务器端状态:SYN_RCVE ESTABLISHED

#四次挥手

客户端发送FIN包询问服务器端是否能断开,客户端进入FIN_WAIT_1状态

服务器端收到客户端发送的包并返回ACK包,服务器端进入CLOSE_WAIT状态

服务器端准备好断开后,发送FIN包给客户端,服务器端进入LAST_ACK状态

客户端收到服务器端发送的包后返回ACK包,客户端进入TIME_WAIT状态,服务器端收到包后进入CLOSED状态

客户端状态:FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT

服务器端状态:CLOSE_WAIT LAST_ACKC LOSED

如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。

只要资源

(内存硬盘cpu)足够,理论上可以接收无限个链接。所谓65535的限制,是针对客户端的,客户机每链接一个服务,就必须开一个tcp端口与之对应。这样,链接到65535个服务后,本地端口就被占满。服务端口仅仅使用一个。一个tcp链接,是四个元素决定的,server

IP:port+client IP:port。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » C#TCP异步服务器和客户端咋连接?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情