如何使用从源地址到目标主机的IP地址发送udp数据包?
问题描述:
来源方:如何使用从源地址到目标主机的IP地址发送udp数据包?
import java.io.*;
import java.net.*;
class Server
{
public static void main(String args[]) throws Exception
{
DatagramSocket ds = new DatagramSocket(50074);
byte[] ms = new byte[1024];
String a="Computer";
ms=a.getBytes();
DatagramPacket ps = new DatagramPacket(ms, ms.length, InetAddress.getByName("Destination Ip address"),1599);
ds.send(ps);
}
}
目的地侧:
import java.io.*;
import java.net.*;
class Client
{
public static void main(String args[]) throws Exception
{
DatagramSocket ds = new DatagramSocket(1599);
byte[] ms = new byte[10024];
DatagramPacket ps = new DatagramPacket(ms,ms.length);
ds.receive(ps);
System.out.println(new String(ps.getData()));
}
}
这是我的计划,但它不工作。当我给目标IP地址=“本地主机”时,它运行良好。但是,如果我取代localhost作为“目的地IP地址像117.201.12.80”它不工作..请帮我解决这个问题
答
对不起 - 没看到你调用InetAddress.getByName()
响应
当你应该充满117 201 12 80分别
答
localhost
或127.0.0.1
的addr
每段被调用InetAddress.getByAddress(byte[] addr)
是系统默认的IP地址,如果你有注意到如Tomcat,xmapp,IIS等该服务器的所有使用这些IP地址运行的应用程序。
所以,如果你指定127.0.0.1
或localhost
由你定程序将只运行,如果你连接到互联网或玩它具有类似于117.201.12.80
比你可以与运行程序的IP地址的游戏创建一个wifi网络IP-地址。
如果你ping 117.201.12.80会发生什么? – KevinDTimm 2012-04-02 18:43:10
我试图ping 117.201.12.80在终端(Ubuntu的)..它继续像“从117.201.7.138的64个字节:icmp_seq = 2 ttl = 128时间= 0.758 ms ”..它不结束..谢谢快速回复..帮帮我 – Chitti 2012-04-03 19:11:44