2013-04-02 51 views
1

我创建了两个文件与udp套接字编程,一个发送和其他接收,我没有把文件接收到另一台计算机与不同的提供商,我执行发件人和接收器后,我确实看到接收器没有收到数据包,IP配置没问题,发送者发送到接收器IP和端口,有些人说我需要“打开”udp端口,但MMORPG游戏使用这种策略,这是必要的吗? ?接收器在您的IP和定义端口上执行绑定(),请参阅代码。远程UDP套接字不接收数据包

发件人:

begin 
    sender = UDPSocket.new() 
    host = "10.100.1.115" 
    port = 3001 
    while true 
    p "Enviando..." 
    sender.send("Numero #{10}",0,host,port) 
    sleep 0.1 
    end 
    rescue 
    p $! 
    end 
gets 

接收机:

begin 
    myIP = IPSocket.getaddress(Socket.gethostname) # => 10.100.1.115 
    puts "Seu IP => #{myIP}" 
    sock = UDPSocket.new() 
    sock.bind(myIP,3001) 
    puts "#=========================#" 
    puts "....Esperando Pacotes....." 
    puts "#=========================#" 
    while true 
    line = sock.recvfrom(1024) 
    puts "Recebido : #{line}" 
    end 
    rescue 
    p $! 
    end 
    gets 

有什么不对?我需要使用NAT吗?如果是,我如何使用?共同策略用于游戏开发者制作客户端套接字udp的方式是通过服务器计算机接收发送数据包? (对不起,我的英语不好,我知道)。

回答

1

如果另一台计算机位于路由器或NAT之后,则必须在路由器上进行配置以将数据包转发给实际计算机。