我正在尝试编写一个快速的小java应用程序来读取pcap文件的内容(来自Wireshark)并在Linux机器上的网络上播放数据.该文件只包含UDP广播数据包,因此我的应用程序只需要时间戳,端口号和数据包中的数据来完成我需要的操作.我的问题是我尝试使用此代码测试的应用程序正在侦听Windows上的IPv4 UDP广播.我的测试应用程序不断打开IPv6套接字以发送数据.
我netstat -a -u -p
用来确定套接字是一个udp6套接字.在Windows上,我知道它不是.
在java中强制测试应用程序在java中打开udp或udp4套接字的最简单或最好的方法是什么?我不想每次都被迫提供ipv4网络地址.我希望能够将此代码移动到另一台机器,而不必记住它们是一些需要更改的配置.
将-Djava.net.preferIPv4Stack = true添加到Java应用程序运行时属性中.