【发布时间】:2012-10-19 00:56:46
【问题描述】:
我在运行 red hat 5 的虚拟机上以 bash 运行以下行:
for i in {1..100000};
do telnet 10.10.10.105 41941;
done
在某些时候,telnet 会连接到端口,即使没有人在监听它。它似乎正在连接到它的自我? 当我启动应用程序的客户端时出现同样的问题,没有启动服务器 - 客户端成功连接到 ip:port。客户端看起来像这样:
addr.sin_family = AF_INET;
addr.sin_port = htons(atoi(port));
addr.sin_addr.s_addr = inet_addr(hostname);
some_while_loop
{
status = ::connect(sock, (sockaddr *)&addr, sizeof(addr));
if (status == -1)
{
shutdown(sock, 2);
close(sock);
return false;
}
}
我找到了这篇文章:http://web.deu.edu.tr/doc/soket/,它在 6.2 中指出,如果您连接到正在运行的同一台机器,连接将会成功。我的问题是,为什么会这样?是硬件问题还是正在使用故障安全的红帽内核,或者可能是因为我正在使用的端口(例如,对于 1025,我没有这个问题)...?
【问题讨论】:
标签: performance unix networking connect telnet