0

我正在尝试通过no-ip连接一个简单的 Ruby 客户端-服务器(套接字

代码:> 服务器

 #!/usr/bin/ruby
 require 'socket'

 puts "Server run..."
 server = TCPServer.new('',5000)
 while (session = server.accept)
   Thread.start do
       session.puts "ok"
       session.close
   end  
 end   

代码:> 客户端

#!/usr/bin/env ruby
require 'socket'

clientSession = TCPSocket.new( "xxx.xxx.xxx.xxx.", 5000)
while !(clientSession.closed?) && (serverMessage = clientSession.gets)
  if serverMessage =~/ok/
    puts "connect"
  end
end 



连接

连接图像

图表说明

PC1:运行在 5000 端口的 Ruby 服务器

PC2:Ruby 客户端正在运行

ROUTER:映射以将连接重定向到 PC1(服务器)端口 5000

NO-IP:配置为将连接重定向到我的公共 IP(路由器)端口 5000

VPN:来自瑞典的 IP,用于模拟来自WAN的连接

*两台电脑都在本地网络上




第一次测试绿色箭头)//没有IP的客户端服务器

使用我的公共 IP 和端口 5000 配置客户端

TCPSocket.new( "xxx.xxx.xxx.xxx.", 5000)

PC2运行客户端=>连接到VPN =>连接到ROUTER =>重定向到PC1服务器=> PC1响应“ ok=> 采用相同的方式返回 =>穿上PC2connect ”#工作



第二次测试蓝色箭头)//在没有客户端的情况下从浏览器测试no-ip

假设这是我的无 IP 地址:test.no-ip.org

PC2浏览器打开test.no-ip.org =>连接到VPN =>连接到NO-IP =>连接到ROUTER =>重定向到PC1服务器=> PC1响应“ ok=>采用相同的方式back =>在浏览器上输入“ok”并将test.no-ip-org更改为xxx.xxx.xxx.xxx.:5000 # work



第三次测试红色箭头)//没有IP的客户端服务器

使用 no-ip 配置客户端

TCPSocket.new ("test.no-ip.org", 80)

PC2运行客户端.....没有任何反应...#不起作用


有任何想法吗?

谢谢。

4

0 回答 0