当前位置: 技术问答>linux和unix
关于socket连接的问题
来源: 互联网 发布时间:2015-10-14
本文导语: 最近再做Web服务的时候出现了一个问题,求教: 我开了进程在8000端口Listen, 当有请求时accept 连接,并再开一个进程处理收发数据,完毕关闭连接,现在出现的情况是 当连接打到一定个数时,accept 返回 open too ma...
最近再做Web服务的时候出现了一个问题,求教:
我开了进程在8000端口Listen, 当有请求时accept 连接,并再开一个进程处理收发数据,完毕关闭连接,现在出现的情况是 当连接打到一定个数时,accept 返回 open too many files. 用netstat -an|grep 8000 查看,发现有大量closed 状态的连接 请问如何解决?
代码结构如下
#define HTTPPORT 8000
int main(int argc, char** argv)
{
int sin_size;
pid_t pid;
char sbuf[255];
signal(SIGTTOU,SIG_IGN);
signal(SIGTTIN,SIG_IGN);
signal(SIGTSTP,SIG_IGN);
signal(SIGHUP ,SIG_IGN);
if (fork() != 0)
{
/*父进程退出*/
exit(1);
}
/*创建一个新的会话组*/
if (setsid()
我开了进程在8000端口Listen, 当有请求时accept 连接,并再开一个进程处理收发数据,完毕关闭连接,现在出现的情况是 当连接打到一定个数时,accept 返回 open too many files. 用netstat -an|grep 8000 查看,发现有大量closed 状态的连接 请问如何解决?
代码结构如下
#define HTTPPORT 8000
int main(int argc, char** argv)
{
int sin_size;
pid_t pid;
char sbuf[255];
signal(SIGTTOU,SIG_IGN);
signal(SIGTTIN,SIG_IGN);
signal(SIGTSTP,SIG_IGN);
signal(SIGHUP ,SIG_IGN);
if (fork() != 0)
{
/*父进程退出*/
exit(1);
}
/*创建一个新的会话组*/
if (setsid()