I am working on a server/client communication program and I am stuck at a problem. When I try to send messages from my client side it won’t work properly. After initializing the server, I connect the client and that is successful. When I try to send messages from the client, the server won’t receive them. After I close the client connection, the server receives all of the messages I attempted to send earlier. The following class is what I am using:
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"); }
}
}
}
Any help would be much appreciated, thanks.
DataOutputStreamdoesn’t have a buffer to flush, so your diagnosis is incorrect. However you need to be aware thatwriteUTF()writes a format that onlyDataInputStream.readUTF()can read. If you’re trying to write lines you have the wrong API: tryBufferedWriter.write()/.newLine().