网络编程
(4) 关闭 Socket。
3.创建 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 则表示服务端所能支
持的最大连接数。
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 时必须捕获或抛出异常。
4.简单的 Client/Server 程序
(1) 客户端程序