2009-11-03 111 views
1

套接字消息模式的消息标记为了在接收到消息时分离消息而什么是好消息?“消息结束”套接字字符串

我一直在使用<EOF>,但似乎是一个字节或太长,并且可能会在消息中发送,尤其是在发送XML数据时。

谢谢!

回答

6

一种方法是类似于AMF3的方法:在每条消息之前,发送一个4字节的长度,指示将作为消息发送的数据的字节数。这样,即使是0字节的“空消息”也可以发送,并且不需要转义机制。

+0

我会推荐8个字节。字节很便宜,一旦将自己限制在4个字节以内,无需更改协议即可退出。 – SLaks 2009-11-03 02:31:07

+1

4个字节已经允许高达4GB的消息。我不认为每4GB分配多TB的消息的开销会增加很多:) – bdonlan 2009-11-03 02:42:15

+0

好主意!谢谢! :D 对于很多短消息的速度考虑如何?它不会造成那么大的差别吗? – bobber205 2009-11-03 03:28:19

1

如果您将信息数据限制为可打印字符,有几个control characters可供选择(ETX,EOT,Ctrl-Z,FS,EM等),这些历史信息历史上已用于发信号结束

+0

我不会将它限制为可打印的字符,但我会牢记这些。 :) – bobber205 2009-11-03 03:39:17