假设我在 TCP 之上为即时消息定义了自己的应用层协议。我为消息使用了数据包结构。当我使用对称 (AES) 和非对称 (RSA) 加密时,我会为不同的消息类型获得不同的数据包大小。现在回答我的问题。
如何从我收到单个应用层数据包的套接字中读取?我应该指定什么尺寸?
提前致谢。
我有两种方法。
从 TCP 流中读取代表实际数据包大小的固定数量的字节,最后从流中重新读取之前收集的字节大小。
从流中读取最大数据包大小。验证获得的字节的实际大小并确定它是哪种消息类型。
现在,一个更普遍的问题。我应该提供数据包大小、加密方法、接收方、发送方等元数据吗?如果是,我是否也应该加密这些元数据?