background image

创建 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. 客户端程序

  import java.io.*;