我正在用C实现套接字编程项目。
选择()
等待来自客户端的数据。我有两个UDP套接字,而select调用始终忽略我的一个套接字。有人可以简要描述我应该从哪里开始寻找它吗?这就是我的服务器正在做的
waitThreshold.tv_sec = 5000;
waitThreshold.tv_usec = 50;
if(sd > sd1)
max_sd = (sd + 1);
else if(sd1 > sd)
max_sd = (sd1 + 1);
FD_ZERO(&read_sds);
FD_SET(sd, &read_sds);
FD_SET(sd1, &read_sds);
ret = select(max_sd, &read_sds, NULL, NULL, &waitThreshold);
if(ret <0)
{
printf("\nSelect thrown an exception\n");
return 0;
}
else if(FD_ISSET(sd, &read_sds))
{
// code for socket one
}
else if(FD_ISSET(sd1, &read_sds))
{
// code for socket two
}
最佳答案
您编写了else if
,因此其中只有一个可以运行。
关于sockets - 解决套接字问题并选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15592346/