场景:选择一个 socket 检测 Activity 时,然后在下面的标准会发生在我的代码。

伪代码:

after select i am checking in
if stdin f descriptor
    do something

else if listening file descriptor
newFDescriptor = accept sockFDescriptor, (struct sockaddr *) &clientAddress, &clientAddressSize

FD_SET (new file descriptor)
send connected response to peer

// data from connected peer
else {
    receive data
}

但是,每次我从同伴向其他对象发送内容时,都会使用新的filedescriptor建立新的连接。即,它不会为该对等节点重新分配已创建的文件描述符中的数据。
对等体1到对等体2(已创建新文件描述符)
对等1到对等2(再次建立新连接)
它正在接收监听文件描述符上的所有数据。

最佳答案

如果对等方坚持创建新连接,则在服务器端您将无能为力。

“它正在接收监听文件描述符上的所有数据”没有任何意义。不可能。监听文件描述符除了接受连接之外什么也不能做。

关于c - 使用选择并接受来启动新文件描述符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19042068/

10-11 18:24