Java网络编程从入门到精通(25):创建ServerSocket对象
2009-09-22 00:00:00 来源:WEB开发网ServerSocket serverSocket = new
ServerSocket(1234, 0, InetAddress.getByName("192.168.18.10"));
上面的代码将IP地址绑定到了192.168.18.10上,因此,服务端程序只能使用绑定了这个IP地址的网络接口进行通讯。
四、默认构造方法的使用
除了使用ServerSocket类的构造方法绑定端口外,还可以用ServerSocket的bind方法来完成构造方法所做的工作。要想使用bind 方法,必须得用ServerSocket类的默认构造方法(没有参数的构造方法)来创建ServerSocket对象。bind方法有两个重载形式,它们的定义如下:
public void bind(SocketAddress endpoint) throws IOException
public void bind(SocketAddress endpoint, int backlog) throws IOException
bind方法不仅可以绑定端口,也可以设置请求队列的长度以及绑定IP地址。bind方法的作用是为了在建立ServerSocket对象后设置 ServerSocket类的一些选项。而这些选项必须在绑定端口之前设置,一但绑定了端口后,再设置这些选项将不再起作用。下面的代码演示了bind方法的使用及如何设置ServerSocket类的选项。
ServerSocket serverSocket1 = new ServerSocket();
serverSocket1.setReuseAddress(true);
serverSocket1.bind(new InetSocketAddress(1234));
ServerSocket serverSocket2 = new ServerSocket();
serverSocket2.setReuseAddress(true);
serverSocket2.bind(new InetSocketAddress("192.168.18.10", 1234));
ServerSocket serverSocket3 = new ServerSocket();
serverSocket3.setReuseAddress(true);
serverSocket3.bind(new InetSocketAddress("192.168.18.10", 1234), 30);
在上面的代码中设置了SO_REUSEADDR 选项(这个选项将在后面的文章中详细讨论)。如果使用下面的代码,这个选项将不起作用。
ServerSocket serverSocket3 = new ServerSocket(1234);
serverSocket3.setReuseAddress(true);
在第6行绑定了IP地址和端口。使用构造方法是无法得到这个组合的(想绑定IP地址,必须得设置backlog参数),因此,bind方法比构造方法更灵活。
更多精彩
赞助商链接