0

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

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"); }
        }
    }
}

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

4

1 回答 1

1

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

于 2012-06-15T04:14:52.577 回答