我已将我的电脑设为服务器和客户端,并且能够将消息从一个cmd窗口传递到另一个窗口。 但是当我没有连接到互联网时,我仍然能够这样做。这怎么可能。? 这是我的代码。
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 :(得分:0)
你不明白第一个问题的答案吗?
您的计算机已启用网络。您的服务器正在侦听127.0.0.1,并且您的客户端正在发送到127.0.0.1。
如果尚未为您分配可路由的IP地址, InetAddress.getLocalHost()
将返回环回地址。