Socket网络通信

来源:互联网 发布:linux下配置环境变量 编辑:程序博客网 时间:2024/05/16 01:03

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);}

0 0
原创粉丝点击