2012-04-02 37 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-地址。

相關問題