来源方:
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()));
}
}
这是我的程序,但它不起作用。当我给Destination IP地址=“localhost”时,它运行良好。但是,如果我将localhost替换为“目标IP地址如117.201.12.80”它是行不通的..请帮我解决这个问题
答案 0 :(得分:1)
localhost
或127.0.0.1
是系统默认的IP地址,如果您注意到tomcat,xmapp,IIS等服务器都使用这些IP地址来运行应用程序。
因此,只有当您指定127.0.0.1
或localhost
时才会运行您提供的程序,如果您连接到互联网或创建一个无线网络来玩具有{{1} IP地址的游戏您可以使用该IP地址运行程序。
答案 1 :(得分:0)
抱歉 - 没有看到回复
当您拨打InetAddress.getByName()
并且每个InetAddress.getByAddress(byte[] addr)
段分别填充117 201 12 80时,您正在呼叫addr