阻塞和socket状态
来源:12-2 IO 多路复用 (select、poll 和 epoll)

平地一声雷d
2019-11-25
socket使用了connect连接时,阻塞的话,是不是后面代码不会执行。
另外我想问下socket状态的问题,这个状态是指什么,我感觉好像是有一个比如write协议之类通过后,才能使用send方法或是read协议通过才能使用recv方法
写回答
1回答
-
bobby
2019-11-26
1. 是的,如果是阻塞模式。connect的情况只要对方没有返回这里就一直等着,但是一般情况下socket都会有超时机制,所以过了一段时间没有返回就会抛出异常
2. 状态的问题其实也好理解,就是socket表示的是一个接口是否可以写入?是否可以读取?因为只要涉及到网络一定会有一个情况,就是windows维护这么多socket,那windows怎么知道目前哪个网络连接已经返回等,为了维护这么多socket连接的问题。也就提出了一个状态来表明目前这个socket可以进行的下一步操作
3. 你这里提到的write之类的其实也就是windows为了维护各种连接的情况才提出的状态问题。但是比你想的更加完善
00
相似问题