14.3.2 Socket类和ServerSocket类

14.3.2 Socket类和ServerSocket类

Java语言的java.net包中提供了两个类——Socket类和ServerSocket类,分别用来表示双向连接的客户机端Socket和服务器端ServerSocket。在程序中,只需要在创建了Socket对象和ServerSocket对象后调用相应的方法,就可以实现网络通信了。

1.Socket类

Socket 是基类,它支持TCP协议。TCP是一个可靠的流网络连接协议。Socket类提供了流输入/输出的方法,使得从套接字中读出数据和往套接字中写数据都很容易。该类实现了客户机端的Socket。Socket对象可以用来向服务器发出请求,并交换数据。

(1)构造方法

public Socket(String host,int port)throws UnknownHostExcetpion,IOException

public Socket(InetAddress address,int port)throws UnknownHostExcetpion

其中,port指定端口号,address指定服务器地址。该方法在客户端以指定的服务端地址和端口号,创建一个Socket对象,并向服务端发出连接请求。

(2)常用方法

public InputStream getInputStream()throws IOException

获得Socket对象的输入流。

public OutputStream getOutputStream()throws IOException

获得Socket对象的输出流。

public InetAddress getLocalAddress()

获得Socket对象绑定的本地机地址。

public InetAddress getAddress()

获得Socket对象绑定的远程地址。

public int  getLocalPort()

获得Socket对象绑定的本地机端口号。

public int  getPort()

获得Socket对象绑定的远程端口号。

public void close()throws IOException

关闭Socket连接。

public void setSoTimeout(int timeout)

设置操作允许的毫秒时间timeout。

2.ServerSocket类

java.net包的ServerSocket是一个因特网服务程序用来监听客户请求的类。ServerSocket类在客户机/服务器应用程序中代表服务器。ServerSocket类提供在特定端口上创建套接字的构造函数。如果传入端口的参数值为0,则在自由端口上创建套接字。

(1)构造方法

public ServerSocket(int port)throws IOException

public ServerSocket(int port,int backlog)throws IOException

其中,port指定端口号,backlog指定最大连接数,即可同时连接的客户端数量。两种方法构造ServerSocket对象时指定端口,表示在指定端口等候客户端的连接。

(2)实例方法

public InputStream getInputStream()throws IOException

获得输入流。

public OutputStream getOutputStream()throws IOException

获得输出流。

public void close()throws IOException

关闭Socket连接。