我想在计算机上模拟网络。 我想用不同的IP地址发送每个数据包。 如何在套接字上设置IP地址?
例如,我要将IP地址设置为192.168.1.1或192.168.1.1/24。 我该怎么办?
我只知道如何设置端口号。
private static DatagramSocket socket;
socket = new DatagramSocket(1024);
我可以使用
DatagramSocket(int port, InetAddress laddr)
初始化我的套接字?
如果是,我应该在参数“ laddr”中输入什么?
答案 0 :(得分:1)
假设您的意思是设置源IP地址-不能。 UDP套接字绑定到计算机上的特定IP接口(或多个接口)。 IP接口是地址的“拥有”。使用IP套接字的程序只能选择要使用的现有接口。
请注意,即使您可以在传出的数据报中随意设置source-address字段,也不会有简单的方法来接收任何答复-因为您的计算机上没有任何内容可以响应您选择的地址(在该处没有IP接口该地址)。
如果要模拟程序中具有不同的IP地址,则需要模拟IP。那将涉及使用原始套接字,但是似乎没有Java实现。