1、打开文件优化
#对当前shell
ulimit -n 102400
echo "ulimit -n 102400" >> ~/.bashrc
#针对所有用户
sudo vim /etc/security/limits.conf
* soft nofile 102400
* hard nofile 102400
#针对系统
cat /proc/sys/fs/file-max
echo 1024000 > /proc/sys/fs/file-max[......]
1、打开文件优化
#对当前shell
ulimit -n 102400
echo "ulimit -n 102400" >> ~/.bashrc
#针对所有用户
sudo vim /etc/security/limits.conf
* soft nofile 102400
* hard nofile 102400
#针对系统
cat /proc/sys/fs/file-max
echo 1024000 > /proc/sys/fs/file-max[......]
感谢原文地址:http://blog.csdn.net/rstevens/archive/2008/11/12/3284661.aspx
1. Connection reset by peer
如果调用 read() 从 TCP 连接上接收数据并返回 -1,且 errno 为 104(Connection reset by peer);这通常表示对端程序没有关闭 socket 就直接退出了 (例如 core dump );
正常调用 close() 来关闭一个 socket, 会导致关闭连接的[......]
在Linux下,connect()建立连接,-1为失败,但是-1不一定就是完全失败!
-1的情况下,有的是因为非阻塞造成的,就是在error中设置了对应的出错情况,例如EINPROGRESS,EAGAIN等可以认为是“非致命错误”,认为是可以接受的,这种只是导致暂时阻塞等情况。
所以可以如下使用
int ret = connect(...);
if(!ret || noFatalError())
{
//认为是成功的
}
bool nonFa[......]
非常感谢原作者:http://hi.baidu.com/ganss/blog/item/1c69d3139036a8836538dba0.html
原来我们实现connect()超时基本上都使用unix网络编程一书的非阻塞方式(connect_nonb),今天在网上看到一篇文章,觉得很有意思,转载如下:
读Linux内核源码的时候偶然发现其connect的超时参数竟然和用SO_SNDTIMO操作的参数一致:
File: net/ipv4/af_inet.c
[cpp]
t[......]
晚上想写一个关于Echo服务器的压力测试,这一写,就出现不少问题,先是epoll的LT和EG问题,这个一会儿再说,然后改好了又遇到一个诡异的问题:在一个程序中反复用socket连接的话,到了28231左右就会莫名奇妙的断掉,提示:Cannot assign requested address,我在google,baidu搜索了这个数值半天,都没有什么结果。
终于找到了一篇文章,转载下来,感谢原作者:
http://hi.baidu.com/jabber/blog/item/da445182769[......]