socket中accept()阻塞时机

来源:2-12 socket相关

沃德抹鸭

2020-09-28

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

写回答

1回答

翔仔

2020-09-29

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

0
1
沃德抹鸭
翻了翻W.RICHARD STEVENS的《 UNIX网络编程 卷1 套接字联网API》,根据第36页的话,服务器的accept()在客户端发起connect()之前就调用了,阻塞直到连接成功时返回
2020-10-01
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程