0

javaを使用してインターネットに送信する前に、TCPパケットとUDPパケットを区別する方法は? これらのパケットをリッスンし、それが TCP か UDP かを区別する必要があります。Javaコードを使用してこれを達成する方法は?

更新: すべての TCP/IP および UDP パケットをサーバー (Ip) にリダイレクトする必要があり、TCP/IP および UDP パケットのトラフィックを追跡してログを作成する必要があります。

4

3 に答える 3

3

Java では TCP で個々のパケットを表示することはできませんが、Socket を使用している場合は TCP になり、DatagramSocket を使用している場合は UDP になります。つまり、クラスが異なるため、混乱する可能性はありません。

送信されているパケットの種類を確認するためにネットワーク アダプターをスヌープする場合は、JPCap を使用できます。

于 2013-01-08T13:06:42.697 に答える
2

ソケットでパケットをリッスンしている場合は、ソケット タイプを指定する必要があります。

java.net.DatagramSocketUDP とjava.net.SocketTCP に対応しているため、取得しているパケットのタイプを常に把握できます。それとも、トラフィックを盗み見して、その方法で差別化しようとしていますか。

于 2013-01-08T13:08:05.893 に答える
1

IP パケットのヘッダー情報を読み取ることができれば、完了できます。IP パケット ヘッダーには、次のプロトコル no が含まれています (6 は TCP を意味し、17 は UDP を意味します)。これを使用して区別する必要があります。

于 2013-01-08T13:29:44.073 に答える