Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在寻找解决此c错误的帮助 我运行一个在线游戏,它运行在一个C++和C语言的服务器上(我的理解)。 最近,我在他们的github页面上打开了一个票证,因为我收到了如下错误: **正在等待网络I/o,文件描述符不正确_C_Sockets_Ubuntu_Networking - Fatal编程技术网

正在寻找解决此c错误的帮助 我运行一个在线游戏,它运行在一个C++和C语言的服务器上(我的理解)。 最近,我在他们的github页面上打开了一个票证,因为我收到了如下错误: **正在等待网络I/o,文件描述符不正确

正在寻找解决此c错误的帮助 我运行一个在线游戏,它运行在一个C++和C语言的服务器上(我的理解)。 最近,我在他们的github页面上打开了一个票证,因为我收到了如下错误: **正在等待网络I/o,文件描述符不正确,c,sockets,ubuntu,networking,C,Sockets,Ubuntu,Networking,他们的回答是,公平的说,这不是他们的错误,而是我的服务器受到的限制。 他们建议研究ulimit和sysctl。 Sysctl似乎相当先进,我还在研究,在我开始研究我不理解的东西之前,ulimit似乎表明没有文件I/o或文件描述符限制,我尝试的所有输出,包括扫描用户和使用ulimit进行的一般扫描,都表示无限制 在这方面,是否有人知道我应该寻找一个特定的位置来解决此错误,或者我应该寻找的特定调用(例如打开文件),以避免无法正确关闭,或者类似的情况? github的主题是: 我还附上了发生这种情况的

他们的回答是,公平的说,这不是他们的错误,而是我的服务器受到的限制。 他们建议研究ulimit和sysctl。 Sysctl似乎相当先进,我还在研究,在我开始研究我不理解的东西之前,ulimit似乎表明没有文件I/o或文件描述符限制,我尝试的所有输出,包括扫描用户和使用ulimit进行的一般扫描,都表示无限制

在这方面,是否有人知道我应该寻找一个特定的位置来解决此错误,或者我应该寻找的特定调用(例如打开文件),以避免无法正确关闭,或者类似的情况? github的主题是:

我还附上了发生这种情况的服务器的代码片段:

int
mplex_wait(unsigned timeout)
{
    struct timeval tv;
    int n;

    tv.tv_sec = timeout / 1000000;
    tv.tv_usec = timeout % 1000000;

    n = select(max_descriptor + 1, &input, &output, 0, &tv);

    if (n < 0) {
    if (errno != EINTR)
        log_perror("Waiting for network I/O");
    return 1;
    } else
    return (n == 0);
}
int
mplex\u等待(未签名超时)
{
结构时间值电视;
int n;
tv.tv_sec=超时/1000000;
tv.tv_usec=超时%1000000;
n=选择(最大描述符+1,&输入,&输出,0,&电视);
if(n<0){
如果(错误号!=EINTR)
log_peror(“等待网络I/O”);
返回1;
}否则
返回值(n==0);
}

我希望这有帮助。C不是我的强项,如果需要更多信息,请告诉我。

请出示a。例如,struct timeval是如何定义的?@machine_1 A是一件好事,但是定义
timeval
有点过分了。你不觉得吗?@klutt至少,OP必须显示他正在使用的头文件的名称。这个函数没有明显的错误。如果您得到的是“错误的文件描述符”,那么程序试图将无效的文件描述符传递给
select
,这是程序中的一个错误(不管程序的开发人员怎么说)。也许这个bug可能是由于文件描述符用完而触发的(我不知道是不是,但开发人员认为是这样)<代码>选择不会仅仅因为程序的文件描述符用完而返回“错误的文件描述符”。
输入
和/或
输出
设置不正确。如果没有看到代码,就不能说更多。