我正在编写一个充当服务器的win32控制台应用程序。我必须设置一个超时接受功能,就像没有连接在10s端口关闭。据我所知,这里有一些方法:
异步方式。但是我正在编写一个控制台应用程序,因此我无法使用该wsaasyncselect函数。
使用选择功能。但有消息说这种方式并不安全。如果客户端发送了一个RST包然后它离线,那么select函数会认为这个套接字仍然可读,而accept函数将永远保存在那里。
具有闹钟功能。首先,我尝试不使用它,因为在这样的应用程序中它是意外的,其次我担心它是否是线程安全的。
所以在这里,我真诚地要求你找到一种方法让接受函数超时,谁必须是线程安全的,并且更好的方式。