网络编程
wdb_xj
热爱C/C++程序开发,windows内核驱动研究,网络编程以及游戏服务器架构技术
展开
-
Socket中的TIME_WAIT状态(转)
Socket中的TIME_WAIT状态在高并发短连接的server端,当server处理完client的请求后立刻closesocket此时会出现time_wait状态然后如果client再并发2000个连接,此时部分连接就连接不上了,用linger强制关闭可以解决此问题,但是linger会导致数据丢失,linger值为0时是强制关闭,无论并发多少多能正常连接上,如果非0会发生部分连接不上的情转载 2010-03-26 09:19:00 · 574 阅读 · 0 评论 -
setsockopt 设置 SO_LINGER 选项(转)
setsockopt 设置 SO_LINGER 选项 此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。 SO_LINGER选项用来改变此缺省设置。使用如下结构:struct linger { int l_onoff; /* 0 = off, noze转载 2010-03-26 09:40:00 · 605 阅读 · 0 评论 -
socket和shutdown(转)
从函数调用上来分析(msdn):一旦完成了套接字的连接,应当将套接字关闭,并且释放其套接字句柄所占用的所有资源。真正释放一个已经打开的套接字句柄的资源直接调用closesocket即可,但要明白closesocket的调用可能会带来负面影响,具体的影响和如何调用有关,最明显的影响是数据丢失,因此一般都要在closesocket之前调用shutdown来关闭套接字。 shut转载 2010-03-26 09:41:00 · 880 阅读 · 0 评论 -
socket关闭close和shutdown(转)
socket关闭有2个close,shutdown他们之间的区别:close-----关闭本进程的socket id,但链接还是开着的,用这个socket id的其它进程还能用这个链接,能读或写这个socket idshutdown--则破坏了socket 链接,读的时候可能侦探到EOF结束符,写的时候可能会收到一个SIGPIPE信号,这个信号可能直到socket buffer被填转载 2010-03-26 09:42:00 · 1744 阅读 · 0 评论