使用Java 6,在linux上如何确保使用ipv4套接字?

Jay*_* R. 10 java linux networking jdk1.6

我正在尝试编写一个快速的小java应用程序来读取pcap文件的内容(来自Wireshark)并在Linux机器上的网络上播放数据.该文件只包含UDP广播数据包,因此我的应用程序只需要时间戳,端口号和数据包中的数据来完成我需要的操作.我的问题是我尝试使用此代码测试的应用程序正在侦听Windows上的IPv4 UDP广播.我的测试应用程序不断打开IPv6套接字以发送数据.

netstat -a -u -p用来确定套接字是一个udp6套接字.在Windows上,我知道它不是.

在java中强制测试应用程序在java中打开udp或udp4套接字的最简单或最好的方法是什么?我不想每次都被迫提供ipv4网络地址.我希望能够将此代码移动到另一台机器,而不必记住它们是一些需要更改的配置.

小智 17

将-Djava.net.preferIPv4Stack = true添加到Java应用程序运行时属性中.

  • 难道你不觉得你的答案中有一个"sigblock"有点多吗?毕竟,你的名字就在答案的右下角,可点击,一切...... (3认同)