我一直在阅读一些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