2012-02-25 9 views
1

私はJavaで基本的なデータグラムのクライアント/サーバプログラムを作ろうとしています。インターネット経由でデータグラムパケットを送る方法は?

ローカルコンピュータのポート9321にサーバーを固定しました。

ローカルコンピュータのポート9320でクライアントを作成した後、 ワイヤレスルーターネットワーク(192.168.1.100)でポート9321でデータを送信します プログラムが動作します!

私はポート9321 で(ルータ経由で)インターネットIP 139.195.12.183(私のIP)を介してパケットを送信しようとしましたが、それは動作しませんでした! この例外があります:

java.net.SocketException: Interrupted function call: Datagram send failed 

私は自分のコンピュータ にポート9321のためのすべての要求を転送するようにルータを設定しましたし、私はそのポートで自分のコンピュータ上で

をファイアウォールの例外を設定しました

:これは私がそれを言った別のフォーラムから別の答えを持っていた

String SERVER = "139.195.12.183"; 

sendString(SERVER, 9321, "Greetings"); << 


private void sendString(String IP, int port, String toSend) { 
    byte[] buf = toSend.getBytes(); 
    DatagramPacket packet = null; 
    try { 

     packet = new DatagramPacket(buf, buf.length, InetAddress.getByName(SERVER), port); 

     ds.send(packet);<< 
    }catch(UnknownHostException e) { 
     System.out.println("unknownhostception"); 
    }catch(IOException e) { 
     System.err.println("ioception "+e.getMessage()); 

    } 

} 

源であります

"ルータの動作方法は、 内部ネットワーク(LAN)から外部(WAN)インターネットアドレスを見ることができません。それがあなたがしようとしているものなら、間違ったことはありません。 はうまくいきません。

イアン「

任意の説明あなたが取ることができ

+0

グローバルネットワーク==インターネットを明確にするだけですか?あなたのローカルPCには公開されているIPアドレスがあります(上記のIPアドレスはキャリアに属しています)。 – home

+0

ああ私はインターネットを意味します。 プライベートネットワークが私のルーターです。 –

+1

IPデータグラムを使用する場合、常にそのTTLについて考えてください。 – ecle

答えて

0

いくつかの手順を実行します。?。コードは、あなたのLAN上の2台のマシンの間で動作することを

  1. チェック
  2. 確認することping <target-ip>はご使用のマシンで動作します
  3. もしそうなら、ローカルおよびポート/プロトコルでブロックするためのLANファイアウォール設定。
  4. ポートがブロックされていない場合は、ポートを別のものに変更します。一部のISPは特定のポートをブロックします。

このエラーが出てくる可能性があり、なぜいくつかのより多くの理由:

  • UDP(私が想定?)が大きすぎるデータグラム。レセプションには影響しません
  • クライアント側のエラーが(エラーが偽だったいくつかのネットワーク・スタックと同様のものを見たことがあります。)

ポストpatsebinたりしたい場合は、何かからあなたのコードへのリンクを詳細情報

+0

最初のステップは成功です私のコンピュータへのルータ設定(転送)は有効になっています(ポート9321) ポート9321はISPによってブロックされていないと思いますが!) –

+0

IPデータグラムに設定されているTTL値は何ですか? 1のTTLは最初のルータでのみ持続し、それを超えることはありません。 http://en.wikipedia.org/wiki/Time_to_live – ecle

+0

良いキャッチeee、私はそれを言及するのを忘れました。私はキーナンが例外を送信するかどうか分からないが。 – brice

関連する問題