2013-04-02 50 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之後,則必須在路由器上進行配置以將數據包轉發給實際計算機。