//创建一个ServerSocket,用于监听客户端Socket的连接请求
ServerSocket ss = new ServerSocket(30000);
//采用循环不断地接收来自客户端的请求
while(true)
{
//每当接收到客户端Socket的请求时,服务器也对应产生一个Socket
Socket s = ss.accept();
//下面就可以使用Socket进行通信了
...
}
上面程序中创建ServerSocket没有指定IP地址,则该ServerSocket将会绑定到本机默认的IP地址。程序中使用30000作为该ServerSocket的端口号,通常推荐使用1024以上的端口,主要是为了避免与其他应用程序的通用端口冲突。
客户端通常可使用Socket的构造器来连接到指定服务器,Socket通常可使用如下两个构造器:
◆Socket(InetAddress/String remoteAddress, int port):创建连接到指定远程主机、远程端口的Socket,该构造器没有指定本地地址、本地端口,默认使用本地主机的默认IP地址,默认使用系统动态指定的IP地址。
◆Socket(InetAddress/String remoteAddress, int port, InetAddress localAddr, int localPort)::创建连接到指定远程主机、远程端口的Socket,并指定本地IP地址和本地端口号,适用于本地主机有多个IP地址的情形。
上面两个构造器中指定远程主机时既可使用InetAddress来指定,也可直接使用String对象来指定,但程序通常使用String对象(如192.168.1.1)来指定远程IP地址。当本地主机只有一个IP地址时,使用第一个方法更为简单。如下代码所示。