我一直在閱讀一些Java套接字代碼片斷,並且發現了一個事實,即在套接字通信中,要按順序發送消息,您不必手動將它們分開,作家/讀者流自動爲你做這些事情。這裏是一個例子:java socket writeUTF()and readUTF()
writer.java
writeUTF("Hello");
writeUTF("World");
reader.java
String a=readUTF(); // a=Hello
String a=readUTF(); // b=World
我試過這段代碼,它工作正常。但是,我想知道這種編碼風格是否應該工作正常。沒有明確區分每個段的順序使用套接字流是否存在潛在的風險?
什麼你說「每段明確分開」意思? TCP甚至沒有辦法做到這一點,假設你正在根據RFC討論真正的TCP段。請澄清你的問題。 – EJP 2010-10-25 11:22:50
好吧,我通常會追加一些特殊字符,如「###」並在讀者端檢測它們。這很傻,但我沒有別的辦法。 – 2010-10-26 05:35:08