使用 Select() 并返回"no error"错误

Using Select() and getting "no error" errors returned

本文关键字:no error 错误 返回 Select 使用      更新时间:2023-10-16

我在使用Select()来确定套接字上何时有数据可供读取时遇到了一些问题。我希望我连接的套接字没有数据,因此select返回超时或0值。相反,我得到-1的值,消息是"error:no-error"

我有与此示例非常相似的代码:https://beej.us/guide/bgnet/html/multi/selectman.html

我在这里读了几遍select()文档:msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx

任何想法都将不胜感激。谢谢

具体说明:C++、Win XP、Microsoft Visual C++2010

在实际创建套接字之前,您正在将套接字添加到fd_set结构中

FD_SET(s, &readfds);
// (...)
int iConnected = ConnectToHost(PortNum, IpAddy);
//^ This actually calls: s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);

因此,您正在向fd_set添加一个无效的套接字。在此之前创建套接字:

int iConnected = ConnectToHost(PortNum, IpAddy);
//(...)
FD_SET(s, &readfds);
相关文章: