当前位置:  技术问答>linux和unix

非阻塞socket该如何使用。。。

    来源: 互联网  发布时间:2015-12-17

    本文导语:  非阻塞socket在select的时候还不是又阻塞住了,还不变成了阻塞socket了; 那它到底该怎么用呢? 怎么没有触发机制的? | 非阻塞socket和select一起在Multiplexing时很有用; 比如同时监听多个socket,如...

非阻塞socket在select的时候还不是又阻塞住了,还不变成了阻塞socket了;
那它到底该怎么用呢? 怎么没有触发机制的?

|
非阻塞socket和select一起在Multiplexing时很有用;
比如同时监听多个socket,如果用阻塞socket直接读写一个socket的时候会影响到其他socket,而通过非阻塞socket+select,则可以一次监听所有socket的情况;
详细介绍请参考UNP3有关select的章节

|
>>我想知道非阻塞对于阻塞来说有什么优点,还有在select的时候不是又阻塞了,那么它到底该>>如何应用呢。。。

非阻塞模式对于没有数据读或写缓冲区不够的情况下立刻返回,而对于阻塞模式则是等待,也不能说这是优点,根据你的需求选择使用.
select的时候是阻塞了,但他可以等待一定的时间,而不是永远等待,这样可以利用他来设置超时时间.

|
尽量不要用非阻塞

|
#include 
#include 

int fcntl(int fd, int cmd);

设置非阻塞IO
int flags;
if ((flags = fcntl(fd, F_GETFL, 0)) 

    
 
 

您可能感兴趣的文章:

  • Select() 是否只能在非阻塞IO里使用,在阻塞IO里可以使用吗?
  • 请问使用TCP/IP时,服务器阻塞的问题。(在线讨论)!!
  • 使用非阻塞式IO接收客户数据?
  • 信号阻塞函数sigsuspend()的使用。
  • 如何使用shell脚本实现监控程序消息队列阻塞情况?
  • Linux网络抓包的程序 [使用recvfrom之后无限阻塞]
  • 使用TCP,在客户端怎么知道建立好的连接已经断开?怎么用非阻塞模式,以及怎么知道socket已经收到数据并立即将数据读出?
  • java线程阻塞中断与LockSupport使用介绍
  • linux 如何用SOCKET设置函数设置阻塞和非阻塞?
  • socket编程,关于connect阻塞问题 iis7站长之家
  • 初级问题,socket(AF_INET, SOCK_STREAM, 0)是阻塞式还是非阻塞式?
  • 关于socket编程中阻塞的问题
  • linux C socke编程 创建的socket默认是阻塞的还是非阻塞的?
  • linux socket fd 写阻塞问题
  • socket编程,关于connect阻塞问题
  • 当进程处于socket读阻塞模式中,外部SIGNAL发生,此时信号相应响应函数可否进行socket写?
  • select和非阻塞socket的迷惑
  • linux下socket的send函数阻塞问题?
  • solaris socket 非阻塞recv产生 EBADF 错误
  • 求教!为何在socket编程中调recv函数无法阻塞?
  • 非阻塞的socket的问题
  • socket编程,设为非阻塞,客户端怎么判断connect已经成功呢?
  • 昨天发现fcntl设置非阻塞SOCKET会频繁的失败,不知道什么原因.
  • socket 非阻塞 出错
  • 一个socket阻塞问题 ,请多多指教!!!(只剩下100分了)
  • 急问:怎么判断一个非阻塞的socket已经断开了?
  • linux下如何设置一个socket为非阻塞方式?
  • 求助:阻塞socket在多线程情况下的防护问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • select如何实现发送的阻塞和解除阻塞?
  • Linux下read函数默认到底是阻塞的还是非阻塞的?
  • 如何从阻塞式的read中取得阻塞了多少时间?
  • 请教sleep和pthread_delay_np:阻塞线程/阻塞进程?
  • recvfrom函数,已经设置好非阻塞模式,是否还存在阻塞的风险?
  • 怎么解除recvfrom阻塞的阻塞状态
  • 请教:线程中调用一个阻塞的方法后,进程及其它线程会阻塞么?
  • 怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住???
  • 什么是非阻塞啊?我用下面的程序设计的,用非阻塞和不用都一样啊?
  • 请问:我发现在linux上的网络编程时, 若客户端连不上服务端,就会阻塞,但如果是在UNIX上,若连不上,会马上返回,并不阻 塞,怎样让它也能阻塞啊?
  • 关于《Unix网络编程》在ubuntu 8.04下运行的问题,服务器端阻塞在accept调用,客户端阻塞在connect调用,导致连接失败
  • linux fwrite 阻塞问题
  • 关于非阻塞I/O
  • 如何判断一个线程是否处于阻塞状态
  • 关于fread是否会阻塞的问题
  • linux多线程无法进行阻塞方式的读写操作
  • 阻塞
  • 什么是非阻塞I/O?
  • 如何实现一次非阻塞的串口写?
  • 哪位为高手能解释一下 NIO(非阻塞的IO)的实现原理?谢谢!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3