在Java中使用Socket(套接字)完成TCP程序的开发,使用此类可以方便地建立可靠的、双向的、持续的、点对点的通信连接。
在Socket的程序开发中,服务器端使用ServerSocket等待客户端的链接。每个Java的网络程序的客户端都使用一个Socket对象表示。
ServerSocket
public ServerSocket(int port) 创建ServerSocket实例,并指定监听端口
public Socket accept() 等待客户端连接,此方法连接前一直阻塞
public InetAddress getInetAddress() 返回服务器的IP地址
public boolean isClosed() 返回ServerSocket的关闭状态
public void close() 关闭ServerSocket
在服务器端每次运行时都要使用accept方法等待客户端连接,此方法执行后服务器端将进入阻塞状态,知道客户端连接后程序才可以向下继续执行。此方法返回Socket,每个Socket都表示一个客户端对象
Socket
public Socket(String host, int port) 构造Socket对象,同时指定要连接服务器的主机名称及连接端口
public InputStream getInputStream() 返回此套接字的输入流
public OutputStream getOutputStream() 返回此套接字的输入流
public void close() 关闭此Socket
public boolean isClosed() 判断此套接字是否被关闭
在客户端,程序通过Socket类的getInputStream方法取得服务器的输出信息,在服务器端可以通过getOutputStream方法取得客户端的输出信息
TCP的所有操作都必须建立可靠的连接,会浪费大量系统性能,增加开销。