永发信息网

socket中阻塞与非阻塞如何理解

答案:2  悬赏:60  手机版
解决时间 2021-02-07 23:29
  • 提问者网友:了了无期
  • 2021-02-07 09:43
如题,一直无法理解何为阻塞与非阻塞,求解。
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-02-07 10:54
这个问题涉及三方面,一个是阻塞本身的定义,一个是阻塞现象,一个是阻塞模式设定

阻塞,就是阻挡,禁止做某工作
当系统出现阻塞现象时,

如果设置了阻塞模式,则当前程序会等待阻塞现象消失,然后继续做事情

如果设置了非阻塞模式,则,当前程序会马上返回相应的错误,停止做事情
以上只是白话描述,细节内容还是要多读书去理解
全部回答
  • 1楼网友:廢物販賣機
  • 2021-02-07 11:20
阻塞:一般的i/o操作可以在新建的流中运用.在服务器回应前它等待客户端发送一个空白的行.当会话结束时,服务器关闭流和客户端socket.如果在队列中没有请示将会出现什么情况呢?那个方法将会等待一个的到来.这个行为叫阻塞.accept()方法将会阻塞服务器线程直到一个呼叫到来.当5个连接处理完闭之后,服务器退出.任何的在队列中的呼叫将会被取消. 非阻塞:非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的c/s(客户端/服务器)结构的软件就是异步非阻塞模式的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯