新线程中的服务器套接字

时间:2017-09-19 15:09:04

标签: c linux network-programming pthreads

我想创建服务器套接字,但不希望通过“接受调用”来阻止我的主应用程序。所以我将在主应用程序中创建一个套接字。使用pthread机制我创建了一个新线程,我将在其中使用“接受调用”。在主应用程序中创建套接字后,我调用了“pthread join”。现在,当这个线程执行时,“accept call”再次阻止了主应用程序。我检查了使用gdb。我应该怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

一种方法是将主服务器套接字描述符设置为非阻塞并使用select系统调用。当select返回并且主套接字描述符具有数据时,创建一个新线程来处理新接受的连接。通过这种方式,您可以实现并行性,创建的新连接将具有自己的上下文,并且即使在accept()等待连接时也会尽可能安排。