日期:2014-05-16  浏览次数:21216 次

Accept() 返回0,请问是怎么回事 ?
在linux   端运行server,listen在20000端口,Windows端connect()可以,发送数据也发送成功了,但linux端的server有时会Accept()返回0,这时windows端发送的数据就收不到了,为什么Accept()会返回   0?

------解决方案--------------------
printf ( "%s\n " , strerror(errno) );
看看输出什么。
------解决方案--------------------
accept 是可以返回0的(用man accept看),如果你的Server关闭了标准输入(也就是0),accept 就可能返回0。关键是程序里对返回0的处理正确吗?

------解决方案--------------------
accept在一般情况不能返回0
------解决方案--------------------
some socket resource not run close() ?