socket通信流程

根据进程在网络通信中使用的协议,可以将socket通信方式分为两种:面向连接、基于TCP协议的通信;另一种是面向无连接,基于UDP协议的通信。

当使用面向连接的方式进行通信时,服务器和客户机先各自创建socket文件,服务器调用bind()函数绑定服务器端口和地址。之后服务器通过接口listen()设置可连接的数量。若客户端需要与服务器进行交互,客户端会调用connect()函数向已知服务器地址端口发送连接请求并 阻塞 等待服务器应答。服务器监听到请求连接以后,会调用accept()函数试图进行连接。若服务器为到达最大连接数量,便成功建立连接,此后客户端解除阻塞,两端可正常通信。否则服务器忽略本次连接。最后当通信完成以后,双方各自调用close()函数,关闭socket文件,释放资源。

当使用面向无连接的方式进行通信的时候,服务器和客户机各自创建自己的socket文件,再由服务器调用bind()函数绑定服务器地址和端口。此后通信双方可以开始通信,需要注意的,因为服务器与客户机尚未建立连接,所以客户端每次向服务器发送数据时,都需要额外的指定服务器的地址端口。同样的,若服务器需要向客户端发送数据,服务器也需要额外指定地址端口。通信结束以后,通信双方需要调用close()函数,关闭socket文件,释放资源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值