TCP
ket套接字
Socket套接字是基于TCP/IP协议的编程接口,用于描述IP地址和端口。
应用程序通常通过Socket套接字向网络发出请求或应答网络请求。
ServerSocket类
JAVA中的网络编程是通过ServerSocket类和Socket类结合完成的。
ServerSocket类是应用在服务端的类,一般用来监听指定的端口并接收客服端的请求。
在服务端,由ServerSocket类负责实现服务器套接字。
ServerSocket对象监听指定的端口,端口是可以任意指定的。
注意:1024一下的端口为系统保留端口,因此不可以随意使用,应该使用大于1024的端口号,而且同一台主机上的同一个端口号只允许分配给一个特定的 ServerSocket类。
Socket类
Socket类表示套接字。使用Socket时,需要指定待链接服务器的IP地址及端口。
客户端创建Socket对象后,将马上向指定的IP地址及端口发起请求并且尝试连接。
服务端套接字就会创建新的套接字对象,时其与客户端套接字连接起来。
流程图
建立联系三次握手
终止联系进行四次握手
步骤
服务器:
1.创建套接字描述符(socket)
2.设置服务器的IP地址和端口号(需要转换为网络字节序的格式)
3.将套接字描述符绑定到服务器地址(bind)
4.将套接字描述符设置为监听套接字描述符(listen),等待来自客户端的连接请求,监听套接字维护未完成连接队列和已完成连接队列
5.从已完成连接队列中取得队首项,返回新的已连接套接字描述符(accept),如果已完成连接队列为空,则会阻塞
6.从已连接套接字描述符读取来自客户端的请求(read)
7.向已连接套接字描述符写入应答(write)
8.关闭已连接套接字描述符(close),回到第5步等待下一个客户端的连接请求
客户端:
1.创建套接字描述符(socket)
2.设置服务器的IP地址和端口号(需要转换为网络字节序的格式)
3.请求建立到服务器的TCP连接并阻塞,直到连接成功建立(connect)
4.向套接字描述符写入请求(write)
5.从套接字描述符读取来自服务器的应答(read)
6.关闭套接字描述符(close)
来源:CSDN
作者:FANCYPANDAN
链接:https://blog.csdn.net/weixin_44955712/article/details/103647551