そのため、現在、ポート5004でRTPパケットをリッスンするクライアントアプリケーションに取り組んでいます。RTPパケットを送信するサーバーが複数ある可能性があるため、ソケットを使用して特定のリモートホストに接続することはできません。代わりに、ローカルポートでリッスンするために次のことを試みました。
Socket socket = new Socket("127.0.0.1", 5004);
Socket socket = new Socket("localhost", 5004);
Socket socket = new Socket(InetAddress.getByName("localhost"), 5004);
Socket socket = new Socket(InetAddress.getLocalHost(), 5004);
上記のいずれかが私にこの例外を与えます:
java.net.ConnectException: Connection refused: connect
DatagramSocketも使用してみましたが、DatagramPacketsでは、読み取るパケットのサイズを指定する必要があります。
要約すると、特定のリモートホスト/アドレスに接続せずに、ローカルポート5004でサイズが不明なRTPパケットをリッスンする方法を見つける必要があります。どんな助けでも大歓迎です!
編集:
これで、接続をリッスンするようにServerSocketを設定しましたが、それでもパケットを読み取ることができません。
try {   ServerSocket server = new ServerSocket(5004);
        Socket s = server.accept();
        BufferedReader rtpReader = new BufferedReader(new InputStreamReader(s.getInputStream()));
        while (true){
            int k = rtpReader.read();
            if (k == -1) break;
            System.out.println(k);
        }
}
注:RTPパケットは、マルチキャストアドレスを介して送信されます。
問題はマルチキャストであることが判明しました。ニコライの答えを参照してください。どうもありがとう!