socket编程accept返回值为0,是否正常?
socket编程server端程序接收client多连接请求后,sock = accept(iSock, &sin, &len); sock的返回值为0,多数情况下看到的返回值都是正数,出现个零很是奇怪,在这里求助下有人遇到过吗?什么情况下会返回零呢?求大虾....
再看返回了错误码:Socket error 10038 - Socket operation on non-socket 即:非法的socket对象在操作 这个原因基本定位可以给accept返回值为0原因导致。
从我的程序运行来看确实出现了:too many openfiles 这个错误,即打开文件句柄过过。但是我的程序既有打开的文件也有打开的socket,用pfiles看进程打开的句柄数却并没用什么变化。程序日志跟踪打开的文件都被及时关闭,打开的socket也被关闭了。
确实有些奇怪,到底是因为什么原因导致打开文件句柄数过多呢?