(4) 关闭 Socket.(在实际应用中,并未使用到显示的 close,虽然很多文章都
推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以并未造成什
么影响。)
3,创建 Socket
创建 Socket
java 在包 java.net 中提供了两个类 Socket 和 ServerSocket,分别用来表示双向连接
的客户端和服务端。这是两个封装得非常好的类,使用很方便。其构造方法如下:
Socket(InetAddress address, int port);
Socket(InetAddress address, int port, boolean stream);
Socket(String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host, int port, InetAddress localAddr, int localPort)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
ServerSocket(int port);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)
其中 address、host 和 port 分别是双向连接中另一方的 IP 地址、主机名和端 口
号,stream 指明 socket 是流 socket 还是数据报 socket,localPort 表示本地主机的端口号,
localAddr 和 bindAddr 是本地机器的地址(ServerSocket 的主机地址),impl 是 socket 的
父类,既可以用来创建 serverSocket 又可 以用来创建 Socket。count 则表示服务端所能支
持的最大连接数。例如:学习视频网 http://www.xxspw.com
Socket client = new Socket("127.0.01.", 80);
ServerSocket server = new ServerSocket(80);
注意,在选择端口时,必须小心。每一个端口提供一种特定的服务,只有给出正
确的端口,才 能获得相应的服务。0~1023 的端口号为系统所保留,例如 http 服务的端口
号为 80,telnet 服务的端口号为 21,ftp 服务的端口号为 23, 所以我们在选择端口号时,最好
选择一个大于 1023 的数以防止发生冲突。
在创建 socket 时如果发生错误,将产生 IOException,在程序中必须对之作出处
理。所以在创建 Socket 或 ServerSocket 是必须捕获或抛出例外。