c++ - 检查哪个套接字首先回答 C++

标签 c++ sockets select

我正在向两个客户发送一条消息并等待他们都回复。 我必须检索首先应答的套接字的 SOCKET 值,但选择仅返回 1,0 或 -1。如何编辑我的代码以便获得该值?

fd_set readSet;
    FD_ZERO(&readSet);
    FD_SET(actionGuy, &readSet);
    FD_SET(actionAnotherGuy, &readSet);
    send(actionGuy, "go", 3, 0);
    send(actionAnotherGuy, "go", 3, 0);
    SOCKET first = select(actionGuy + 1, &readSet, NULL, NULL, NULL);

最佳答案

如果它们在 select() 的同一次调用中都变得可读,那么它们基本上同时变得可读。内核无法将它们分开:你不能。如果间隔很长,它们将在单独的 select() 调用中变得可读。

关于c++ - 检查哪个套接字首先回答 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27574178/

相关文章:

c++ - LBNF、C函数声明/定义、reduce减少冲突

sockets - 为什么在执行 read() 时 ETH_P_IP 和 ETH_P_ALL 之间存在差异

MySQL REGEXP 不会返回基于阿拉伯语的正则表达式的预期结果

java - 持久 TCP 连接客户端/服务器

flash - 跨域XML和Flash

MySQL,在替换特定列中的文本时选择*(输出之前)

MySql SELECT,根据另一列对一列求和

c++ - 成员变量继承

c++ - 为什么必须将函数必须返回的数组声明为静态数组?

c# - 从 C++ 调用 C# dll