如何使用IP地址从源到目标主机发送udp数据包?

时间:2012-04-02 18:05:54

标签: java android

来源方:

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”它是行不通的..请帮我解决这个问题

2 个答案:

答案 0 :(得分:1)

localhost127.0.0.1是系统默认的IP地址,如果您注意到tomcat,xmapp,IIS等服务器都使用这些IP地址来运行应用程序。

因此,只有当您指定127.0.0.1localhost时才会运行您提供的程序,如果您连接到互联网或创建一个无线网络来玩具有{{1} IP地址的游戏您可以使用该IP地址运行程序。

答案 1 :(得分:0)

抱歉 - 没有看到回复

当您拨打InetAddress.getByName()并且每个InetAddress.getByAddress(byte[] addr)段分别填充117 201 12 80时,您正在呼叫addr