ServerSocket objects you create will use their accept() method to connect to a client.
public Socket accept() throws IOException
There are no getInputStream() or getOutputStream() methods for ServerSocket.
Instead you use accept() to return a Socket object, and then call its
getInputStream() or getOutputStream() methods.For example,
try {
ServerSocket ss = new ServerSocket(2345);
Socket s = ss.accept();
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.println("Hello There!");
pw.println("Goodbye now.);
s.close();
}
catch (IOException e) {
System.err.println(e);
}
Notice in this example, I closed the Socket s, not the ServerSocket ss.
ss is still bound to port 2345. You get a new socket for each connection
but it's easy to reuse the server socket. For example, the next code fragment
repeatedly accepts connections:
try {
ServerSocket ss = new ServerSocket(2345);
while (true) {
Socket s = ss.accept();
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.println("Hello There!");
pw.println("Goodbye now.);
s.close();
}
}
catch (IOException e) {
System.err.println(e);
}