对于我在互联网上看到的
Linux / Unix套接字教程的每个教程和示例,服务器端代码总是涉及一个无限循环,每次都检查客户端连接.
例:
例:
http://www.thegeekstuff.com/2011/12/c-socket-programming/
解决方法
这些例子中的无限循环已经很有效.对accept()的调用是一个阻塞调用:在客户端连接到服务器之前,函数不会返回.调用accept()函数的线程的代码执行暂停,并且不占用任何处理能力.
将accept()视为对join()的调用,或者像对互斥锁/ lock / semaphore的等待一样.
当然,还有许多其他方法来处理传入连接,但那些其他方式处理accept()的阻塞性质.此功能很难取消,因此存在非阻塞替代方案,允许服务器在等待传入连接时执行其他操作.一个这样的选择是使用select().其他替代方案的可移植性较差,因为它们涉及低级操作系统调用,通过回调函数,事件或操作系统处理的任何其他异步机制来发出连接信号……
原文地址:https://www.jb51.cc/c/111002.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。