TCP通信的概述
概述
TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务器(Server)。
两端通信时步骤:
1.服务端程序,需要事先启动,等待客户端的连接。
2.客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。
在Java中,提供了两个类用于实现TCP通信程序:
1. 客户端:java.net.Socket类表示。创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信。
2.服务端:java.net.ServerSocket类表示。创建ServerSocket对象,相当于开启一个服务,并等待客户端的连接。
TCP通信:面向连接的通信,客户端和服务器端必须的经过3次握手,建立逻辑连接,才能通信(安全)
通信的步骤:
服务器端先启动
服务器端不会主动的请求客户端
必须使用客户端请求服务器端
客户端和服务端就会建立一个逻辑连接
而这个连接中包含一个对象
这个对象就是IO对象
客户端和服务器端就可以使用
IO对象进行通信
通信的数据不仅仅是字符
所以IO对象是字节流对象
服务器端需明确两件事情:
1.多个客户端同时和服务器进行交互,服务器必须明确和哪个客户端进行的交互在服务器端
有一个方法,叫accept客户端获取到请求的客户端对象
2.多个客户端同时和服务器进行交互,就需要使用多个IO流对象
服务器是没有IO流的,服务器可以获取到请求的客户端对象Socket
使用每个客户端Socket中提供的IO流和客户端进行交互
服务器使用客户端的字节输入流读取客户端发送的数据
服务器使用客户端的字节输出流给客户端回写数据(服务器使用客户端的流和客户端交互)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix