I am trying to write my first socket server, so I decided to start with something very simple, just to understand the flow :) I am writing a simple echo java server, but the thing is (for some reason ?!) I do not get the server response in the client, although the request is received on the server.
package poc.client; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class Client { public static void main(String[] args) { try { final Socket socket = new Socket((String) null, 50000); final BufferedReader reader = new BufferedReader( new InputStreamReader(socket.getInputStream())); final PrintWriter writer = new PrintWriter( socket.getOutputStream(), true); writer.println("ala bala\r\n"); writer.flush(); writer.close(); System.out.println(reader.readLine()); System.out.flush(); } catch (Exception ex) { Logger.getAnonymouseLogger().throwing(TAG, "main", ex); } } }
And the server side
package poc.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class Server { @SuppressWarnings("unused") private static final String TAG = Server.class.getSimpleName(); public static void main(String[] args) { try { final ServerSocket socket = new ServerSocket(50000); while (true) { final Socket clientSocket = socket.accept(); final BufferedReader reader = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); final PrintWriter writer = new PrintWriter(clientSocket .getOutputStream(), true); writer.println(reader.readLine()); writer.flush(); writer.close(); } } catch (IOException e) { Logger.getAnonymouseLogger().throwins(TAG, "main",ex); } } }
I have read all the tutorial lessons for the base Oracle / etc socket, but I just canβt understand what happened - I am successfully writing to the server socket, but I seem to be unable to get the answer.
source share