import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class DomeServer extends Thread {
private ServerSocket serverSocket;
public int getPost(){
return serverSocket.getLocalPort();
}
public void run(){
try {
serverSocket = new ServerSocket(0);
while (true){
Socket socket = serverSocket.accept();
new Thread(()->{
try(PrintStream printStream = new PrintStream(socket.getOutputStream())) {
printStream.println("hello");
printStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (serverSocket!=null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
final DomeServer domeServer = new DomeServer();
domeServer.start();
try (final Socket client = new Socket(InetAddress.getLocalHost(),domeServer.getPost())){
final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(client.getInputStream()));
bufferedReader.lines().forEach(s-> System.out.println(s));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}