TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。
1、在服务端指定一个端口号来创建ServerSocket,并使用accept方法进行侦听,这将阻塞服务器线程,等待用户请求。
2、在客户端指定服务的主机IP和端口号来创建socket,并连接服务端ServerSocket,此时服务端accept方法被唤醒,同时返回一个和客户端通信的socket。
3、在客户端和服务端分别使用socket来获取网络通信输入/输出流,并按照一定的通信协议对socket进行读/写操作。
4、通信完成后,在客户端和服务端中分别关闭socket。此部分为引用,原文链接:https://blog.csdn.net/weixin_45851945/article/details/114263043
原理说明
1、服务器端
2、客户端
Java为客户端提供了Socket类,为服务器端提供了ServerSocket类
构造方法 | 说明 |
---|---|
Socket(InetAddress address, int port) |
创建流套接字并将其连接到指定IP地址的指定端口号 |
Socket(String host, int port) |
创建流套接字并将其连接到指定主机上的指定端口号 |
常用方法 | 说明 |
---|---|
OutputStream getOutputStream() |
返回此套接字的输出流 |
InputStream getInputStream() |
返回此套接字的输入流 |
void shutdownOutput() |
禁用此套接字的输出流 |
构造方法 | 说明 |
---|---|
ServerSocket(int port) |
创建绑定到指定端口的服务器套接字 |
常用方法 | 说明 |
---|---|
Socket accept() |
侦听要连接到此套接字并接受它 |