我正试图通过no-ip
连接一个简单的Ruby客户端服务器( socket )代码: > 服务器
#!/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的连接
*两台PC都在本地网络
上
第一次测试(绿色箭头)// 客户端 - 服务器,不带 no-ip
使用我的公共IP和端口5000配置客户端
TCPSocket.new( "xxx.xxx.xxx.xxx.", 5000)
PC2 运行客户端 =&gt; 连接到 VPN =&gt; 连接到 ROUTER =&gt; 重定向到 PC1 (服务器) =&gt; PC1 < / strong>回复“确定” =&gt; 以同样的方式返回 =&gt; 穿上 PC2 “ connect ”# 工作
第二次测试(蓝色箭头)//在没有客户端的情况下从浏览器测试 no-ip
假设这是我的无IP地址:test.no-ip.org
PC2 从浏览器中打开 test.no-ip.org =&gt; 连接到 VPN =&gt; 连接到 NO-IP =&gt; 连接到 ROUTER =&gt; 重定向到 PC1 (服务器) =&gt; PC1 响应“ ok “ =&gt; 以同样的方式返回 =&gt; 在浏览器上放置”ok“并为 xxx.xxx.xxx.xxx.:5000 # 工作更改 test.no-ip-org
第三次测试(红色箭头)// 客户端 - 服务器 no-ip
使用no-ip配置客户端
TCPSocket.new ("test.no-ip.org", 80)
PC2 运行客户端 .....没有任何反应...... 无法正常工作
有什么想法吗?
感谢。