首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

setsockopt设置了linger选项的疑问,该怎么处理

2012-03-26 
setsockopt设置了linger选项的疑问C/C++ codeint main(){int sockfd, connfdstruct sockaddr_in servaddr

setsockopt设置了linger选项的疑问

C/C++ code
int main(){    int sockfd, connfd;    struct sockaddr_in servaddr;    socklen_t len;    struct linger linger;        if (bind(sockfd, (struct sockaddr*)&servaddr, sizeof servaddr) < 0)        err_sys("bind error");    if (listen(sockfd, LISTENQ) < 0)        err_sys("listen error");    linger.l_onoff = 1;    linger.l_linger = 0;    if (setsockopt(sockfd, SOL_SOCKET, SO_LINGER, &linger, len) < 0)        err_sys("error setlinger\n");    connfd = accept(sockfd, (struct sockaddr*)&servaddr, &len);    close(connfd);    close(sockfd);    return 0;}

这段代码用setsockopt设置了linger选项,l_onoff为1,l_linger为0,但是我用netstat看到这个进程还是经历了TIME_WAIT状态,设置了此选项应该不会经历这个state才对的阿?


[解决办法]
探讨

这样呢,select会不会被打断?
kill(SIGIO);
select(...);

[解决办法]
探讨
引用:

引用:
C/C++ code


int main()
{
int sockfd, connfd;
struct sockaddr_in servaddr;
socklen_t len;
struct linger linger;

if (bind(sockfd, (struct sockaddr*……

热点排行