我有一个客户端 tcp 套接字(在 c++ 中),它有一个循环,它会重试打开一个套接字并以一定的时间间隔连接到服务器,直到它成功。
程序中的一个错误导致close
在连接失败后无法在文件描述符上调用socket
,并且connect
在调用时再次使用相同的(打开的)描述符,并且在重试重新连接时在循环的下一次迭代中再次使用。
在 Linux 机器上,这不会导致任何问题,而在 HPUX 上,它最终会导致错误 24 - “打开的文件过多” - lsof 将这些显示为TCP *:* (IDLE)
.
Linux 和 HPUX 之间有什么区别?