import java.net.*;InetAddress ia = InetAddress.getLocalHost();
System.out.println(ia.getHostAddress());

解决方案 »

  1.   

    谢谢!
    可上面的方法,我用了,它返回的只是: 127.0.0.1我需要在server端发送udp数据包到本机来,不至于用127.0.0.1这个地址吧!还有其它方法吗?
      

  2.   

    没有,我得到的就是本机的ip,看看您的tcp/ip协议配的有没有问题
      

  3.   

    肯定是你没有配置tcp/ip协议了,就是楼上的办法可以的
      

  4.   

    干嘛要获得localhost的地址呢?
    如果和server不需要知道本级地址
    如果server要主动和本机连,那server首先就要知道client的地址,你这段程序也没有机会执行
      

  5.   

    再次感谢! 可问题依旧!
    我的tcp/ip协议很正常,  可能我描述得不太清楚! 看看这段代码:

            server_ip=getCodeBase().getHost().toString();
               
    try{
            address=InetAddress.getByName(server_ip.trim());
        }catch(Exception e){}
             try
            {
               
               String msg="测试数据";
                byte[] message=msg.getBytes();
                DatagramPacket packet =new DatagramPacket (message,message.length,address,2325);
                DatagramSocket socket=new DatagramSocket ();
                socket.send (packet);
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
     
    用它可以把数据成功发送到运行Server的机器上, 可我想再转回来! 即从
    server端把原始数据返回来, 那客户端的ip总得有吧!  
    注: 我调试用的机器在一局域网中, 通过代理网关上网!
      

  6.   

    我想应该是在"客户端"程序获取其ip,  同数据一起发给server!
      

  7.   

    好了,问题解决了!
    使用 DatagramPacket类对象 getAddress()方法
    谢谢各位了!
    结了...........