2009-11-03 108 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