代码之家  ›  专栏  ›  技术社区  ›  CuriousGeorge

C++ Winsock 2题

  •  2
  • CuriousGeorge  · 技术社区  · 16 年前

    我计划使用WSAAsyncSelect()进行类似的设置,但是使用一个单独的线程。我可以使用WSAEventSelect()将多个套接字链接到单个事件对象吗?

    谢谢你在这方面给我的帮助

    编辑:更好的是,我最好还是换成C来做这个?它似乎很受欢迎,更适合这个特定的任务。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Remy Lebeau    16 年前

    不,不能将多个套接字链接到单个WSAEVENT。必须为每个要接收通知的套接字调用WSACreateEvent()和WSAEventSelect()。但是,可以使用WSAWaitForMultipleEvents()让一个线程等待来自多个套接字的事件。

    至于使用完成端口,我建议您阅读MSDN关于此问题的文章,例如:

    Windows Sockets 2.0: Write Scalable Winsock Apps Using Completion Ports

        2
  •  1
  •   Martin Ba    16 年前

    我打算做一些像 使用时得到的设置 WSAAsyncSelect(),但使用单独的 线程。我可以使用WSAEventSelect()来 将多个套接字链接到单个 事件对象?

    那没道理。一个事件只能发出一次信号。因此,如果您有多个套接字连接到同一事件,那么当它收到信号时,您永远不知道哪个套接字发出了事件信号!

    http://msdn.microsoft.com/en-us/library/ms742219%28v=VS.85%29.aspx )