当前位置: 技术问答>linux和unix
程序用socket和select导致ubuntu脱网
来源: 互联网 发布时间:2016-07-11
本文导语: 我做服务器,有TCP连接时,建立连接并且建立线程处理这个连接收到的命令(循环接受命令,我用select来实现,如果有数据就收,超过5秒没有就打印超时,并且结束这个线程,也就是关闭这个socket连接,然后从新等...
我做服务器,有TCP连接时,建立连接并且建立线程处理这个连接收到的命令(循环接受命令,我用select来实现,如果有数据就收,超过5秒没有就打印超时,并且结束这个线程,也就是关闭这个socket连接,然后从新等待连接),通过命令来建立和关闭多个会议(每个会议建立一个线程管理,会议用udp收发数据)。隔一段时间(时间不一定,但是最多不会超过一小时)就会脱网,这时用ping网关都ping不通,需要重启网卡马上就好。
下面是会出问题的程序段:
while(1)
{
timeout.tv_sec = 5;
timeout.tv_usec = 0;
FD_ZERO(&fds_tcp);
FD_SET(sockfd, &fds_tcp);
ret = select(sockfd+1, &fds_tcp, NULL, NULL, &timeout);
if(ret 0)
{
do something
}
}
我已经定位了问题就在这段程序,各位大虾帮帮忙啊,救命的! 分不够再加
下面是会出问题的程序段:
while(1)
{
timeout.tv_sec = 5;
timeout.tv_usec = 0;
FD_ZERO(&fds_tcp);
FD_SET(sockfd, &fds_tcp);
ret = select(sockfd+1, &fds_tcp, NULL, NULL, &timeout);
if(ret 0)
{
do something
}
}
我已经定位了问题就在这段程序,各位大虾帮帮忙啊,救命的! 分不够再加
|
看着代码头晕 帮顶