For some reason, I cannot read lines from the client on the server. The client can send lines without problems, but the server will not move past the first time clientIn.readLine () is called . I guess it blocks, but I donβt know how to deal with it.
This also happened when I sent lines without a loop on the server side.
Client.java
public void run()
{
try {
socket = new Socket(ip, port);
System.out.println("Client connected on port: " + socket.getRemoteSocketAddress());
BufferedReader serverIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter serverOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
System.out.println("starting messages");
serverOut.println("hello from: " + socket.getLocalSocketAddress());
serverOut.println("msg1: " + this.hashCode());
serverOut.println("msg2: final test");
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Server.java:
public void run()
{
System.out.println("Server Running on port: " + serverSocket.getLocalPort());
while(true)
{
try {
Socket client = serverSocket.accept();
connections.put(client.getRemoteSocketAddress(), client);
BufferedReader clientIn = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter clientOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())));
String line = null;
while((line = clientIn.readLine()) != null)
{
System.out.println(line);
}
client.close();
System.out.println("Client disconnected");
} catch (IOException e) {
e.printStackTrace();
}
}
}
source
share