The java.net.ServerSocket
class represents a server
socket. It is constructed on a particular port. Then it calls
accept()
to listen for incoming connections.
accept()
blocks until a connection is detected. Then
accept()
returns a java.net.Socket
object you
use to perform the actual communication with the client.
There are three constructors that let you specify the port to bind to, the queue length for incoming connections, and the IP address to bind to:
public ServerSocket(int port) throws IOException
public ServerSocket(int port, int backlog) throws IOException
public ServerSocket(int port, int backlog, InetAddress bindAddr)
throws IOException
The accept()
and close()
methods provide
the basic functionality of a server socket.
public Socket accept() throws IOException
public void close() throws IOException
On a server with multiple IP addresses, the
getInetAddress()
method tells you which one this server
socket is listening to. The getLocalPort() method tells you which
port you're listening to.
public InetAddress getInetAddress()
public int getLocalPort()
There are three methods to set and get various options. The defaults are generally fine.
public void setSoTimeout(int timeout) throws SocketException
public int getSoTimeout() throws IOException
public static void setSocketFactory(SocketImplFactory fac)
throws IOException
Finally, there's the usual toString()
method:
public String toString()