通信协议的工作线程的设计——阻塞模式
(1)设计TCP链路的通信协议
①数据包的设计:数据包头和数据包体(可参考代码中的消息定义部分)——TLV(Type-Length-Value)
组成 |
说明 |
数据包头 |
包含命令代码字段和整个数据包大小的字段(这个字段长度是固定的),即使通信双方己约定好各种命令数据包的长度,可以直接从命令代码中间接地判断出该数据包的长度,但仍建议设计该结构头时,保留数据包长度这个字段。 命令代码如:登录命令、消息上传、下载命令、退出 |
数据包体 |
各种数据包定义的集合 |
②如此设计的好处——便于接收方从数据流中解出正确的数据包。首先接收一个完整的数据包头,并对数据包进行检验。检验合法时再从包头中读出数据包总长度,就可以接收数据包剩余部分。不管通信协议的设计如何改变。请记住一点:数据包的结构必须有一个固定长度的包头,便于接收方首先接收,其次包头中必须包含整个数据包长度的信息</