TCP和UDP是基本通讯组件SOCKET,TCP的连接流程情况如下文。建立简单的TCP客户端和服务端比较简单,但是当有数以百计的TCP客户端连接的时候处理难度难度则增加,解决方法如下文。
在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接
第一次握手:客户端尝试连接服务器,向服务器发送syn包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入SYN_SEND状态等待服务器确认
第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
定睛一看,服务器socket与客户端socket建立连接的部分其实就是大名鼎鼎的三次握手
以上部分来源于
Samaritans http://www.cnblogs.com/dolphinX/p/3460545.html
高性能的TCP服务实现(c#)
TCP服务端的性能好坏决定了后期通讯框架的稳定,若没弄好后期项目中的bug分析比较棘手。
大侠 匠心十年 发布了篇关于此内容的文章。http://www.cnblogs.com/gaochundong/p/csharp_tcp_service_models.html
后期学习透彻后将更新此内容。这里直接上一项目中使用过的TCP服务源码