如何区分c#中TCP字节的不同用途?



我正在用c#编写一个程序,使用TCPClient连接到服务器。例如,我如何区分应用程序中哪个字节代表什么类型的函数。我想以某种方式用标记那个字节,这样我就知道它是用于那个的所以我可以很容易地区分它的服务器端。

分帧,即将流划分为消息的工作,完全取决于您。例如,如果您正在编写二进制协议,您可能会使用固定字节数的报头,告诉您随后的有效载荷的长度和帧的意图。如果您正在编写文本协议,通常会有一个尾随字符(通常是CR/LF或NUL)表示消息的结束,并且第一个字符(s)描述意图。

但是:这完全取决于你,用一种对你的协议有意义的方式来定义它。客户端和服务器必须在这个语义上达成一致。你还应该注意明确"结尾性"。在任何这样的规范中,如果它是二进制的;对于文本:定义要使用的区域性(通常是en不变的)和时区规则(在日期/时间的情况下)。

最新更新