通信协议的工作线程的设计——阻塞模式
(1)设计TCP链路的通信协议
①数据包的设计:数据包头和数据包体(可参考代码中的消息定义部分)——TLV(Type-Length-Value)
组成 |
说明 |
数据包头 |
包含命令代码字段和整个数据包大小的字段(这个字段长度是固定的),即使通信双方己约定好各种命令数据包的长度,可以直接从命令代码中间接地判断出该数据包的长度,但仍建议设计该结构头时,保留数据包长度这个字段。 命令代码如:登录命令、消息上传、下载命令、退出 |
数据包体 |
各种数据包定义的集合 |
②如此设计的好处

本文详细介绍了TCP聊天室的设计,包括数据包协议的制定,使用TLV结构,便于接收和校验;链路异常检测机制,如TCP断开时的处理,网络故障的响应,以及主动发送数据检测链路状态的方法;多线程下的数据收发,讨论了WinSock的缓冲区锁定机制,避免了数据乱序和重复接收的问题。
最低0.47元/天 解锁文章
472

被折叠的 条评论
为什么被折叠?



