请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

socket中accept()阻塞时机

老师,关于Socket通信流程图中accept()的位置,视频里的图和网上大部分图不一样。视频中是在connect后,网上广泛流传的是从connect前就阻塞了等待有连接请求。请问哪种是对的?

正在回答 回答被采纳积分+3

1回答

翔仔 2020-09-29 02:07:30

同学好,accept()函数功能是,从处于 established 状态的连接队列头部取出一个已经完成的连接,如果这个队列没有已经完成的连接,accept()函数就会阻塞,直到取出队列中已完成的用户连接为止。然后视频里面我们是假设有这么一种情况,客户端率先发起了connect请求,所以才有图里的内容

0 回复 有任何疑惑可以回复我~
  • 提问者 沃德抹鸭 #1
    翻了翻W.RICHARD STEVENS的《 UNIX网络编程 卷1 套接字联网API》,根据第36页的话,服务器的accept()在客户端发起connect()之前就调用了,阻塞直到连接成功时返回
    回复 有任何疑惑可以回复我~ 2020-10-01 15:26:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信