Socket网络通信

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值