java socket

本文详细介绍了如何使用Java的Socket进行TCP/IP通信。通过客户端和服务器端的代码示例,展示了如何创建Socket连接,进行数据传输,并解释了TCP三次握手的过程。在客户端,使用`Socket`类建立连接,而服务器端通过`ServerSocket`监听并接受连接。通信过程中,Socket提供了输入输出流进行数据交换。
摘要由CSDN通过智能技术生成

SOCKET 解决问题 : 客户端 到 服务端 进行通信(TCP/IP 协议)


客户端 : java.net.Socket client = new Socket("127.0.0.1",80) ; 创建一个链接 IP 127.0.0.1 ,端口号80 的请求链接(底层已经调用connect() )。


服务端 : java.net.ServeSocket serve = new ServeSocket(80) ; 创建一个监听80端口的本地服务( 已经调用blind() )。


客户端与服务端有了 ,那么问题来了: 她们是如何建立连接进行通信(传输数据)的呢


首先对于TCP/IP 协议,大家知道可靠连接是有3次握手的(客户端请求连接允许,服务器端发送允许链接,客户端发送链接请求),相对应的:

1、服务端已经做好客户端请求链接允许的准备:java.net.Socket socket = serve.accept() , serve会一直处于阻塞状态,直到请求来到。 (可简单启动main方法,debug 看程序加载到这行后还往下走么?)

2、客户端请求链接允许 :client.connect() , 如上面讲的,一般初始化的时候就已经connect(),所以不需要我们自己再调用。

3、服务端回复允许链接 : serve.accept()接收到消息,线程继续下走,client端也开始往下走,表示socket已经联通。

4、链接成功,那么通信 : 大家注意步骤一中标红处,serve.accept()返回的是连接的Socket,也就是客户端的socket,这样客户端就可以和服务端进行通信了 。socket有写入写出流进行消息通信 : Socket.getInputStream() 与 Socket.getOutputStream()。客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值