|
|
1
1
创建一个表示包头的静态变量,这个变量将有5个字节长。创建一个关联的整数,计算这五个字节中有多少字节已经被读取。创建第二个整数,计算已读取的“内容”字节数。把这两个整数都归零。创建关联的
当数据到达时(例如。,
当您完成接收头,健全检查它。尺寸值是否可以满足(例如不大于2^30)?如果是的话,
现在,当数据到达时,将其放入分配的缓冲区中。在您创建的第二个整数中说明接收到的字节。当你收到了所有的字节头要求,然后重复以上所有。 |
|
|
2
1
您可以为您的数据包传输设计一个自定义报头,它指定数据包长度、索引信息(如果实现了数据包分段)以及一些哈希(如果需要)。 一些粗略的伪代码如下:
|
|
|
3
0
TCP是一种基于流的协议,而不是数据报协议。这意味着在传递给发送的缓冲区的数量和大小与接收的结果之间不一定存在一一对应的关系。这意味着您需要在TCP之上实现自己的“协议”。
此类协议的示例包括HTTP,其中HTTP消息由两个连续的回车、换行对描述。
|