我的应用程序需要从命令行监听用户的键盘输入,以及在单个循环中同时监听套接字上的数据。这个应用程序目前在linux上运行,通过使用select和将stdin和网络套接字添加到fd_set数组列表中,可以轻松实现上述选择调用。根据活动的不同,应用程序可以处理用户输入或套接字上的数据。
现在我将此应用程序移植到Windows,我对Windows不是很熟悉。如何在Windows中实现上述目标?那就是在stdin和socket上监听活动。任何指针都赞赏。
答案 0 :(得分:0)
我能够通过以下方式解决这个问题。
使用WaitForMultipleObjects()api。 对于此API,请使用STD_INPUT控制台句柄的句柄。 对于您感兴趣的每个套接字,创建一个WSACreateEvent并将其添加到传递给WaitForMultipleObjects()API的句柄数组中。
当WaitForMultipleObjects()API返回时,您可以找到检测到活动的句柄并相应地采取行动。