1

我的家庭网络上有两台 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 创建了一个例外,以便它允许任何设备连接(我什至尝试过完全关闭防火墙)。

我也认为代码本身很好,因为当我从与服务器相同的盒子运行客户端时,我可以成功建立连接。

我认为有些东西阻止了网络连接,但我并不精通解决网络问题,那么我应该从哪里开始解决这个问题?

4

0 回答 0