【发布时间】:2015-03-14 14:48:22
【问题描述】:
我想通过 TCP 套接字从 PC1 向 PC2 发送消息。问题是,我如何判断 PC2 收到的消息是部分的还是完整的?或者更具体地说,如何确定 TCP 消息的开始和结束?
1) 在 TCP 消息的开头添加消息长度信息?
2) 在 TCP 消息的开头和结尾添加特殊标志字节?
【问题讨论】:
-
你经历过这个吗 - stackoverflow.com/questions/2389756/…
我想通过 TCP 套接字从 PC1 向 PC2 发送消息。问题是,我如何判断 PC2 收到的消息是部分的还是完整的?或者更具体地说,如何确定 TCP 消息的开始和结束?
1) 在 TCP 消息的开头添加消息长度信息?
2) 在 TCP 消息的开头和结尾添加特殊标志字节?
【问题讨论】:
是,或者
(3) 使用像 XML 这样的自描述协议,或者
(4) 类型-长度-值协议,或
(5) 像 XDR 这样的自我实现协议,或者
(6) ...
请注意,如果您使用 STX/ETX 等开始/结束字节,当它们出现在消息中间时,您需要对其进行转义,并且您还需要对转义进行转义。
【讨论】: