草庐IT

closesock

全部标签

c++ - 为什么调用closesock后socket accept函数不释放?

我有一个服务器应用程序打开套接字并监听连接。在应用程序中,我有一个单独的线程创建一个套接字,绑定(bind)它并调用它的监听和接受函数。当应用程序关闭时,我在创建的套接字上调用closesocket,然后等待套接字线程关闭。但是,如果线程正在等待接受函数,则线程永远不会完成。我以为调用cloasesocket后accept函数会返回。这是一个正确的想法吗?如果是这样,为什么接受函数不返回?是否有其他方法可以使accept函数返回? 最佳答案 除非select表示可以,否则不要调用accept。在那种情况下,accept永远不会阻塞。