2016-06-17 9 views
1

私は以下のサンプルコードを持っており、ソケットはIP 10.10.88.11とポート9876にバインドされています。以下のようにwiresharkで2つの条件をテストしました。両方のPCが同じサブネットにあります。 10.10でUDPサーバ受信することができませんでしたがWiresharkの( - UDPサーバができ JAVA UDPサーバーはパケットを受信できません

  • は、別のPC(10.10.88.10)からのUDPパケットを送信、受信するために -
    1. は同じPC(10.10.88.11)からのUDPパケットを送信します。 88.11)パケットをキャプチャすることができます

    私はインターネットを検索しましたが、解決策が見つかりません。 InetScoketAddressを作成する際に間違っていたことはありますか?

    import java.io.*; 
    import java.net.*; 
    
    public class UDPServer { 
        public static void main(String args[]) throws Exception {   
    
        InetSocketAddress address = new InetSocketAddress("10.10.88.11", 9876); 
    
        DatagramSocket serverSocket = new DatagramSocket(address); 
         byte[] receiveData = new byte[1024]; 
         byte[] sendData = new byte[1024]; 
         while(true) 
          { 
           DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); 
           System.out.println("Waiting to receive"); 
           serverSocket.receive(receivePacket); 
           String sentence = new String(receivePacket.getData()); 
           System.out.println("RECEIVED: " + sentence); 
           InetAddress IPAddress = receivePacket.getAddress(); 
           int port = receivePacket.getPort(); 
           String capitalizedSentence = sentence.toUpperCase(); 
           sendData = capitalizedSentence.getBytes(); 
           DatagramPacket sendPacket = 
           new DatagramPacket(sendData, sendData.length, IPAddress, port); 
           serverSocket.send(sendPacket); 
          } 
    
        } 
    } 
    
  • 答えて

    1

    私は、Wiresharkのは、彼らはあなたがそれらを検出しますが、それらはJavaアプリケーションに到達することはありませんことを意味し、ファイアウォールによって評価される前にパケットをつかむことが可能であると考えています。ファイアウォールを無効にしようとしましたか?

    +0

    ありがとうございました...以前はファイアウォールが無効になっていたので、これは考えていませんでした。誰かがそれを元に戻しました。ありがとう... –

    +0

    私はこれがうまくいけば分かりますか、私は興味があります:) –

    +0

    うまくいく... wiresharkがファイアウォールで評価される前にパケットをつかむことはできません。それがここから学んだものです。ありがとうございました。 :) –

    関連する問題