我正在Windows Form应用程序中进行套接字编程(UDP套接字)。我想使用 select()。
socket() 在单击按钮时调用,select() 在不同的线程中调用,套接字描述符声明为全局。
以下是我关于选择的代码部分:
fd_set fds;
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 500000;
FD_ZERO(&fds);
FD_SET(s_8888, &fds);
int n=s_8888; //s_8888 is socket descriptor
select (n+1, &fds, 0 , 0 , &tv );
当我编译我的代码时,我收到以下错误
error C2064: term does not evaluate to a function taking 5 arguments
我无法理解我哪里做错了。
您可能正在"影子"Winsock 库的功能select()
,方法是使用此名称定义另一个可用对象。
此代码
#include <Winsock2.h> /* Provide prototype for select(). */
void foo(void)
{
int select;
...
select(0, 0, 0, 0, 0);
会通过"阴影"函数select()
变量int select
来引发错误 C2064。
修复此重命名
int select;
自
int select_whateveryoulike;