1、套接字
TCP/IP套接字用于在主机和Internet之间建立可靠的、双向的、持续的、点对点的流式连接。套接字(Socket)允许程序将网络连接当成一个流,可以向这个流中写字节,也可以从这个流中读取字节。Java中有两类TCP套接字,一种是服务器套接字(ServerSocket),一种是客户端套接字(Socket)。
2、Socket
Socket是网络上运行的两个程序间双向通信的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便地在网络上传递数据。Socket工作步骤如下:
(1)根据指定地址和端口创建一个Socket对象
(2)调用getInputStream或getOutputStream方法打开连接到Socket的输入输出流
(3)客户端与服务器根据一定的协议交互,直到关闭连接
(4)关闭客户端的Socket
try {
Socket socket = new Socket("127.0.0.1", 8080);
}
catch (IOException ioe) {
System.out.println(ioe);
}
catch (UnknownHostException uhe) {
System.out.println(uhe);
}
3、ServerSocket
ServerSocket是服务器套接字,运行在服务器上,并监听特定端口的TCP连接。ServerSocket工作步骤如下:
(1)根据指定端口创建一个新的ServerSocket对象
(2)调用ServerSocket的accept方法,在指定的端口监听到来的连接请求。accept一直处于阻塞状态,直到有客户端试图建立连接。这时accept方法返回连接客户端与服务器的Socket对象
(3)调用getInputStream或getOutputStream方法建立与客户端交互的输入输出流
(4)服务器与客户端根据一定的协议交互,直到关闭连接
(5)关闭服务器端的Socket
(6)回到第二步继续监听下一次的连接
ServerSocket server = null;
try {
server = new ServerSocket(8080);
}
catch (IOException ioe) {
System.out.println(ioe);
}
Socket socket = null;
try {
socket = server.accept();
}
catch (IOException ioe) {
System.out.println(ioe);
}