如何确定TCP报文的开始和结束?
How to determine the start and end of a TCP message?
我想通过 TCP 套接字从 PC1 向 PC2 发送消息。问题是,我如何判断 PC2 收到的消息是部分消息还是完整消息?或者更具体地说,如何确定 TCP 消息的开始和结束?
1) 在 TCP 消息的开头添加消息长度信息?
2) 在 TCP 消息的开头和结尾添加特殊标志字节?
是,或者
(3) 使用自描述协议,如 XML,或
(4) 类型-长度-值协议,或
(5) 像 XDR 这样的自我实现的协议,或者
(6) ...
注意如果像STX/ETX一样使用start/end个字节,出现在消息中间的时候需要转义,转义也需要转义
我想通过 TCP 套接字从 PC1 向 PC2 发送消息。问题是,我如何判断 PC2 收到的消息是部分消息还是完整消息?或者更具体地说,如何确定 TCP 消息的开始和结束?
1) 在 TCP 消息的开头添加消息长度信息?
2) 在 TCP 消息的开头和结尾添加特殊标志字节?
是,或者
(3) 使用自描述协议,如 XML,或
(4) 类型-长度-值协议,或
(5) 像 XDR 这样的自我实现的协议,或者
(6) ...
注意如果像STX/ETX一样使用start/end个字节,出现在消息中间的时候需要转义,转义也需要转义