我有一个服务器有很多IP地址,UDP套接字绑定到0.0.0.0,所以我可以从任何一个接收UDP。如何指定要发送的UDP数据包中使用的源IP地址?我目前的实现是使用NIO,所以也许使用DatagramChannel来执行发送是个问题。java udp从特定IP地址发送
-1
A
回答
1
以下程序演示您的需求是虚构的。它显示源于DatagramSocket
绑定到0.0.0.0的数据报数据包以源地址127.0.0.1发送。
public static void main(String[] args) throws IOException
{
DatagramSocket ds1 = new DatagramSocket(0);
int port = ds1.getLocalPort();
System.out.println(ds1.getLocalAddress());
DatagramSocket ds2 = new DatagramSocket();
byte[] bytes = {0x01};
SocketAddress sa = new InetSocketAddress("localhost", port);
DatagramPacket dp = new DatagramPacket(bytes, 0, bytes.length, sa);
ds2.send(dp);
ds1.receive(dp);
ds2.send(dp);
ds2.receive(dp);
System.out.println(dp.getAddress());
}
-2
我放弃了一个干净的解决方案,只是使用每个IP地址绑定DatagramSocket类上,可以用来与出站数据包的特定源IP发送UDP服务器。
相关问题
- 1. 从特定的IP地址发送电子邮件
- 2. 如何从特定的IP地址发送电子邮件?
- 3. 如何使用HttpClient从特定IP地址发送请求? C#
- 4. 仅从特定IP地址接收UDP的Qt程序
- 5. 如何在java中获取UDP数据包发送方的本地ip地址
- 6. Python UDP recvfrom()特定地址
- 7. Java的UDP不能绑定到本地IP地址(以太网)
- 8. Python:获取用于将IP数据发送到特定远程IP地址的本地IP地址
- 9. 发送来自特定IP地址的SOAP请求
- 10. 如何通过特定的IP地址发送httpwebrequests
- 11. 通过java中的IP地址发送HTTP GET请求到目标IP地址
- 12. 如何为UDP数据包发送者启用自定义IP地址?
- 13. 绑定到特定的IP地址和端口以接收UDP数据
- 14. 如何使用从源地址到目标主机的IP地址发送udp数据包?
- 15. 特殊IP地址
- 16. 从特定卷地址读取Java从
- 17. socket.io绑定到特定的IP地址
- 18. 发送邮件的IP地址与node.js
- 19. Debian发送ip地址在启动(sheevaplug)
- 20. 自动更新并发送IP地址
- 21. 获取UDP数据包的IP地址
- 22. 获取IP地址和UDP端口包
- 23. C# - UDP的Socket BeginReceive()(查看Ip地址)
- 24. netty udp,绑定并发送到其他地址
- 25. 如何从java中给定ip获得下一个ip地址?
- 26. 如何从虚拟IP地址向服务器发送请求?
- 27. 如何确定距离特定IP地址最近的IP地址
- 28. java - 发送https请求到服务器ip地址抛出SSLHandshakeException
- 29. 如何聆听特定IP地址
- 30. 使用Jetty阻止特定IP地址
为什么? IP将通过IP路由表确定的正确接口正确地路由它们,并将该接口的IP地址放入传出数据报。注意你没有。 'Java code bound to 0.0.0.0',你有一个UDP套接字绑定到0.0.0.0。 – EJP
我发送数据包的系统将使用源IP作为信息,所以我需要从本地IP中选择特定的源IP。 – klaxxon
这是一个* non sequitur *因为我已经给了。 – EJP