2011-08-08 16 views
0

我的应用程序需要侦听来自命令行的用户的键盘输入以及在单个循环中同时侦听套接字上的数据。这个应用程序目前运行在Linux上,通过使用选择和添加标准输入和网络套接字到给定的fd_set数组列表可轻松实现上述选择呼叫。根据活动,应用程序可以处理用户输入或套接字上的数据。Windows同时侦听套接字和命令行输入

现在我正在将此应用程序移植到Windows,并且我对Windows不是很熟悉。在Windows中如何实现上述功能?这是监听stdin以及套接字上的活动。任何指针赞赏。

+0

我能够通过以下方式解决这个问题。使用WaitForMultipleObjects()api。对于此API,使用STD_INPUT控制台句柄的句柄。对于您感兴趣的每个套接字,创建一个WSACreateEvent并将其添加到传递给WaitForMultipleObjects()API的句柄数组中。 – sthustfo

回答

0

我能够通过以下方式解决这个问题。

使用WaitForMultipleObjects()api。 对于此API,使用STD_INPUT控制台句柄的句柄。 对于您感兴趣的每个套接字,创建一个WSACreateEvent并将其添加到传递给WaitForMultipleObjects()API的句柄数组中。

当WaitForMultipleObjects()API返回时,您可以找出检测到活动的句柄并相应地采取行动。