我的家庭网络上有两台Windows计算机似乎无法通过我正在测试的客户端/服务器TCP连接进行通信。
这是一个我在Windows Server 2008上运行的简单Ruby服务器:
require 'socket'
server = TCPServer.open(2000)
puts "Server started"
loop {
client = server.accept
client.puts "Hello client"
client.close
}
puts "Server stopped"
这是一个我在Windows 7机器上运行的简单客户端:
require 'socket'
hostname='192.168.1.10'
port=2000
s = TCPSocket.open(hostname, port)
while line = s.gets
puts line.chop
end
s.close
当服务器运行时,我运行客户端时看到此错误:
client.rb:6:在`initialize':连接尝试失败,因为 关联方在一段时间后没有正确回应,或已建立 连接失败,因为连接的主机无法响应。 - 连接(2)(呃 RNO :: ETIMEDOUT)
我在端口2000的服务器防火墙上创建了一个例外,这样就可以让任何设备连接(我甚至尝试完全关闭防火墙)。
我还认为代码本身很好,因为我可以在与服务器相同的盒子中运行客户端时成功建立连接。
我认为有阻止网络连接的东西,但我并不精通网络问题排查,所以我应该从哪里开始解决这个问题?