只看此用户 大字体 楼主
我用书上的一个服务器模型,自己写了个测试程序,做了暴力测试,发现了个问题。
服务器的大概结构如下:
main函数中创建两个线程
线程1:while(1) 中accept,把获得的sockfd保存到数组中,继续accept
线程2:while(1)把数组中的有效的sockfd扔进字符集,select其中可读的套接字,然后在该套接字上写信息,close该描述符,使在该数组中的位置重新变成无效。
我的测试程序大概流程如下:
while(1)中创建新的套接字,填充服务器的地址,端口之类的,然后connect,写,读,close。while(1)100ms一次
现在的问题是:
当测试程序while(1)运行1019次后,也就是说服务器接收、连接、读写操作、close这么多次后,服务器就崩溃了,查了很多,感觉是linux的资源没释放。如果我用 ulimit -n 更改服务器的最大文件描述符数,那么运行次数就超过了1019,但是后面的运行非常非常缓慢
,不知道怎么才能解决这个问题。
忘高手指点。附件中是两个程序。
lyb880814 于 2011-04-09 10:07:12发表:
自己把问题解决了,看来这个论坛不怎么样啊。
连登录都没做好,哈哈
lyb880814 于 2011-04-09 10:07:07发表:
自己把问题解决了,看来这个论坛不怎么样啊。
连登录都没做好,哈哈