JAVA 网络编程 TCP

风格不统一 提交于 2019-12-22 01:39:25

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)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!