gpt4 book ai didi

java - DataOutputStream 未清空缓冲区

转载 作者:行者123 更新时间:2023-12-01 15:20:12 26 4
gpt4 key购买 nike

我正在开发服务器/客户端通信程序,但遇到了一个问题。当我尝试从客户端发送消息时,它无法正常工作。初始化服务器后,我连接客户端并且成功。当我尝试从客户端发送消息时,服务器不会收到它们。关闭客户端连接后,服务器会收到我之前尝试发送的所有消息。我正在使用以下类(class):

public class ServerSender extends Thread
{
private DataOutputStream out = new DataOutputStream(socket.getOutputStream());
private Scanner kb = new Scanner(System.in);

public void run()
{
while(true)
{
try
{
out.writeUTF(kb.nextLine());
out.flush();
} catch(IOException e) { System.out.println("error"); }
}
}
}

任何帮助将不胜感激,谢谢。

最佳答案

DataOutputStream 没有要刷新的缓冲区,因此您的诊断不正确。但是您需要注意 writeUTF() 写入的格式只有 DataInputStream.readUTF() 可以读取。如果您尝试写入行,则您使用了错误的 API:请尝试 BufferedWriter.write()/.newLine()

关于java - DataOutputStream 未清空缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11044197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com