我的家庭网络上有两台 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:in `initialize':连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。- 连接(2)(Er rno::ETIMEDOUT)
我在服务器的防火墙上为端口 2000 创建了一个例外,以便它允许任何设备连接(我什至尝试过完全关闭防火墙)。
我也认为代码本身很好,因为当我从与服务器相同的盒子运行客户端时,我可以成功建立连接。
我认为有些东西阻止了网络连接,但我并不精通解决网络问题,那么我应该从哪里开始解决这个问题?