1

私はudpソケットプログラミング、送信と他の受信で2つのファイルを作成し、受信するファイルを別のプロバイダーの別のコンピューターに置きました。送信者を実行し、受信者の後に、受信者がパケットを受信して​​いないことを確認しました。送信者は受信者の IP とポートに送信します。一部の人は、udp ポートを「開く」必要があると言いましたが、MMORPG ゲームはこの戦略を使用します。これは必要ですか? 受信者は IP と定義済みポートで Bind() を実行します。コードを参照してください。

送信者:

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にサーバーコンピューターによる送信パケットを受信させるために使用する共同戦略は何ですか?

(すみません、私の英語は下手です、私は知っています)。

4

1 に答える 1

1

他のコンピューターがルーターまたは NAT の背後にある場合、パケットを実際のコンピューターに転送するには、ルーターで構成を行う必要があります。

于 2013-04-02T15:30:46.683 に答える