当前位置: 技术问答>linux和unix
close(socket)之后,客户端没有收到FD_CLOSE
来源: 互联网 发布时间:2016-09-24
本文导语: SOCKET s,s1; s.bind(); s.listen(); for(;;) { s1=accept(); if (fork()==0) { procmsg(s1); exit(0); } sleep(3); } procmsg(s1) { close(s1); return; } 客户端 客户端连上之后,并没有收到FD_CLOSE??? ...
SOCKET s,s1;
s.bind();
s.listen();
for(;;)
{
s1=accept();
if (fork()==0)
{
procmsg(s1);
exit(0);
}
sleep(3);
}
procmsg(s1)
{
close(s1);
return;
}
客户端
客户端连上之后,并没有收到FD_CLOSE???
为什么呢?
目的就是想,一个连接由一个进程处理,而且处理完了,自动断开。
不采用select.
????问题出在哪了?
s.bind();
s.listen();
for(;;)
{
s1=accept();
if (fork()==0)
{
procmsg(s1);
exit(0);
}
sleep(3);
}
procmsg(s1)
{
close(s1);
return;
}
客户端
客户端连上之后,并没有收到FD_CLOSE???
为什么呢?
目的就是想,一个连接由一个进程处理,而且处理完了,自动断开。
不采用select.
????问题出在哪了?
|
那是因为你的父进程没有close(s1);
在sleep(3)之前增加close(s1);
在sleep(3)之前增加close(s1);
|
linux socket 有FD_CLOSE这个消息?
windows的吧。
windows的吧。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。