2012-04-02 156 views
0

来源方:如何使用从源地址到目标主机的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”它不工作..请帮我解决这个问题

+1

如果你ping 117.201.12.80会发生什么? – KevinDTimm 2012-04-02 18:43:10

+0

我试图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

回答

0

对不起 - 没看到你调用InetAddress.getByName()响应

当你应该充满117 201 12 80分别

1

localhost127.0.0.1addr每段被调用InetAddress.getByAddress(byte[] addr)是系统默认的IP地址,如果你有注意到如Tomcat,xmapp,IIS等该服务器的所有使用这些IP地址运行的应用程序。

所以,如果你指定127.0.0.1localhost由你定程序将只运行,如果你连接到互联网或玩它具有类似于117.201.12.80比你可以与运行程序的IP地址的游戏创建一个wifi网络IP-地址。