3.1 TCP通信原理
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。
- 使用基于TCP协议的Socket网络编程实现,使用Socket对象来代表两端的通信端口
- TCP协议基于请求-响应模式,第一次主动发起的程序被称为客户端(Client)程序
- 第一次通讯中等待连接的程序被称为服务器端(Server)程序
- 利用IO流实现数据的传输
数据传输步骤
1、在服务端指定一个端口号来创建ServerSocket,并使用accept方法进行侦听,这将阻塞服务器线程,等待用户请求。
2、在客户端指定服务的主机IP和端口号来创建socket,并连接服务端ServerSocket,此时服务端accept方法被唤醒,同时返回一个和客户端通信的socket。
3、在客户端和服务端分别使用socket来获取网络通信输入/输出流,并按照一定的通信协议对socket进行读/写操作。
4、通信完成后,在客户端和服务端中分别关闭socket。此部分为引用,原文链接:https://blog.csdn.net/weixin_45851945/article/details/114263043
原理说明
1、服务器端
- 创建ServerSocket(int port)对象
- 在Socket上使用accept方法监听客户端的连接请求
- 阻塞、等待连接的建立
- 接收并处理请求信息
- 将处理结果返回给客户端
- 关闭流和Socket对象
2、客户端
- 创建Socket(String host, int port)对象
- 向服务器发送连接请求
- 向服务器发送服务请求
- 接受服务结果(服务响应)
- 关闭流和Socket对象
Java为客户端提供了Socket类,为服务器端提供了ServerSocket类
Socket类
常用构造器
构造方法 | 说明 |
---|---|
Socket(InetAddress address, int port) |
创建流套接字并将其连接到指定IP地址的指定端口号 |
Socket(String host, int port) |
创建流套接字并将其连接到指定主机上的指定端口号 |
常用方法
常用方法 | 说明 |
---|---|
OutputStream getOutputStream() |
返回此套接字的输出流 |
InputStream getInputStream() |
返回此套接字的输入流 |
void shutdownOutput() |
禁用此套接字的输出流 |
ServerSocket类
常用构造器
构造方法 | 说明 |
---|---|
ServerSocket(int port) |
创建绑定到指定端口的服务器套接字 |
常用方法
常用方法 | 说明 |
---|---|
Socket accept() |
侦听要连接到此套接字并接受它 |
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/244680.html