Jay*_*Jay 22 c sockets asynchronous
什么是异步套接字?它们与普通套接字(阻塞和非阻塞)有什么不同?
该方向的任何指针或教程的任何链接都会有所帮助.
谢谢.
qrd*_*rdl 27
有三种方式以异步方式与套接字通信:
打开常规套接字,但不要从中读取(因为read()块),直到你知道它要读取的东西.您可以使用select()或poll()检查是否有要从套接字读取的数据,如果有什么内容,请阅读它,read()不会阻止.
通过设置O_NONBLOCK带有fcntl()功能的标志,将套接字切换到非阻塞I/O. 在这种情况下read()不会阻止.
O_ASYNC使用FIOASYNC选项设置套接字标志ioctl()(man 7 socket有关详细信息,请参阅参考资料).在这种情况下,SIGIO当有来自套接字的内容时,您将收到信号.
第三种方法是异步套接字.