vp与vs联合开发-网口通信(socket)

Socket通信是一种在网络中进行进程间通信的机制。它使用了一种称为套接字(Socket)的编程接口,通过该接口可以创建、连接、发送和接收数据等操作。

Socket通信中,有两个主要的角色:服务器和客户端。服务器负责监听指定的端口,等待客户端的连接请求;而客户端则主动发起连接请求,与服务器建立连接。

创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),

  网络7层协议架构图

  1. socket则是对TCP/IP协议的封装和应用

vp与vs联合开发-网口通信(socket)_第1张图片

科普|OSI七层网络协议 - 知乎

Socket通信中的Tcp协议三次握手(建立连接)和四次挥手(断开连接)是建立和断开连接的过程。

  1. 三次握手:建立连接过程

    • 客户端调用socket()函数创建一个套接字,并调用connect()函数向服务器发起连接请求。
    • 服务器端调用socket()函数创建一个套接字,并调用bind()函数绑定IP地址和端口号,然后调用listen()函数监听连接请求。
    • 客户端发送一个SYN(同步数据包)包给服务器,表示请求建立连接。
    • 服务器收到SYN包后,发送一个SYN-ACK(同步-确认)数据包)包给客户端,表示同意建立连接。
    • 客户端收到SYN-ACK包后,发送一个ACK(确认数据包)包给服务器,表示连接建立成功。
  2. 四次挥手:关闭连接过程

    • 客户端调用close()函数关闭连接。
    • 客户端发送一个FIN包(结束数据包)给服务器,表示要关闭连接。
    • 服务器收到FIN包后,发送一个ACK包给客户端,表示收到了关闭请求。
    • 服务器调用close()函数关闭连接。
    • 服务器发送一个FIN包给客户端,表示服务器也要关闭连接。
    • 客户端收到FIN包后,发送一个ACK包给服务器,表示收到了关闭请求。

vp与vs联合开发-网口通信(socket)_第2张图片

socket实现通信在应用层面(代码层面)大致需要完成以下几个步骤:
服务器端:
第一步:建立一个用于通信的Socket对象
第二步:使用bind绑定IP地址和端口号
第三步:使用listen监听客户端
第四步:使用accept中断程序直到连接上客户端
第五步:接收来自客户端的请求
第六步:返回客户端需要的数据
第七步:如果接收到客户端已关闭连接信息就关闭服务器端
客户端:
第一步:建立一个用于通信的Socket对象
第二步:根据指定的IP和端口connet服务器
第三步:连接成功后向服务器端发送数据请求
第四步:接收服务器返回的请求数据
第五步:如果还需要请求数据继续发送请求
第六步:如果不需要请求数据就关闭客户端并给服务器发送关闭连接信息

1.Socket通信案例:

vp与vs联合开发-网口通信(socket)_第3张图片

vp与vs联合开发-网口通信(socket)_第4张图片

配置启动项目 

vp与vs联合开发-网口通信(socket)_第5张图片

服务器程序

vp与vs联合开发-网口通信(socket)_第6张图片

vp与vs联合开发-网口通信(socket)_第7张图片

客户端程序

vp与vs联合开发-网口通信(socket)_第8张图片

vp与vs联合开发-网口通信(socket)_第9张图片

vp与vs联合开发-网口通信(socket)_第10张图片

案例2:socket控制拍照功能

你可能感兴趣的:(网络)