场景:选择一个 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/