2011-03-26 28 views
0

我已經使我的電腦都服務器和客戶端,並能夠將消息從一個cmd窗口傳遞到另一個。 但是我仍然能夠這樣做,當我沒有連接到互聯網。 這怎麼可能。?這是我的代碼。如何交換信息? _networking_

import java.net.*; 
class tester { 
    static int pos=0; 
    static byte buffer[]=new byte[100]; 

    static void Client() throws Exception { 
    InetAddress address=InetAddress.getLocalHost(); 
    DatagramSocket ds=new DatagramSocket(); 
    while(pos<buffer.length) { 
    int c=System.in.read(); 
    buffer[pos++]=(byte)c; 
    if((char)c=='\n') 
     break; 
    } 
    ds.send(new DatagramPacket(buffer,pos,address,3000)); 

}   
static void Server() throws Exception { 
InetAddress address=InetAddress.getLocalHost(); 
DatagramSocket ds=new DatagramSocket(3000,address); 
DatagramPacket dp=new DatagramPacket(buffer,buffer.length); 
ds.receive(dp); 
String s=new String(dp.getData(),0,dp.getLength()); 
System.out.print(s); 
} 
public static void main(String args[])throws Exception { 
    if(args.length==1) { 
Client(); } 
    else { 
    Server(); 
    } 
} 
} 

回答

0

您是否不明白第一個問題的答案?

您的計算機已啓用網絡連接。您的服務器正在監聽127.0.0.1,並且您的客戶端正在發送至127.0.0.1。

InetAddress.getLocalHost()如果尚未分配可路由的IP地址,則返回環回地址。