Skip to content

Instantly share code, notes, and snippets.

Created January 20, 2016 15:25
Show Gist options
  • Save anonymous/dd23c9027242f6a5b13c to your computer and use it in GitHub Desktop.
Save anonymous/dd23c9027242f6a5b13c to your computer and use it in GitHub Desktop.
package stackoverflow;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.*;
import java.util.Scanner;
public class Sockets {
public static void main(String... args) throws Exception {
ServerSocket server = new ServerSocket();
server.bind(new InetSocketAddress("localhost", 0));
Thread serverThread = new Thread(() -> {
while (!Thread.currentThread().isInterrupted()) {
try {
Socket socket = server.accept();
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
String msg = (String) in.readObject();
System.out.println("Server here: read message > " + msg);
String ack = "ok";
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
out.writeObject(ack);
System.out.println("Server here: written acknowledge > " + ack);
socket.close();
} catch (Exception e) {
System.err.println("Error while processing request");
e.printStackTrace();
}
}
});
serverThread.setName("server-accepting-thread");
serverThread.setDaemon(true);
serverThread.start();
Scanner shell = new Scanner(System.in);
while (true) {
System.out.println("Write your message and press 'Enter'. Type 'quit' to terminate the program");
try {
String request = shell.nextLine();
if (request.equals("quit")) {
break;
}
Socket socket = new Socket("localhost", server.getLocalPort());
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
System.out.println("Client here: sending request > " + request);
out.writeObject(request);
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
String response = (String) in.readObject();
System.out.println("Client here: server responded > " + response);
socket.close();
} catch (Exception e) {
System.err.println("Error while sending request");
e.printStackTrace();
}
}
}
}
@jimfilippou
Copy link

Thank you!

giphy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment