我有一个将 UTF-8 字符串发送到 C# TCP 服务器的 Java 客户端,我正在使用 DataOutputStream 发送字符串。代码如下所示:
public void sendUTF8String(String ar) {
if (socket.isConnected()) {
try {
dataOutputStream.write(ar.getBytes(Charset.forName("UTF-8")));
dataOutputStream.flush();
} catch (IOException e) {
handleException(e);
}
}
}
问题是冲洗似乎无法正常工作。如果我发送两个彼此靠近的字符串,服务器只会收到一条包含两个字符串的消息。如果我在调用之间执行 Thread.sleep(1000) ,那么整个事情都有效,这显然不是一个解决方案。我错过了什么?