使用计算机名称而不是IP地址通过Wi-Fi连接

时间:2012-01-08 10:42:26

标签: java android ip-address

我一直通过Wi-Fi连接两台电脑,而我正在使用IP地址来执行此操作,如下例所示:

String ipAddress = "192.168.X.X";
Socket socket = new Socket(ipAddress, 8888);

我的IP地址经常更改,所以这对我来说很麻烦,我想使用计算机的名称而不是这个。这怎么可能?

编辑:

从下面的回复中,我能够在两台PC上这样做:

String ipAddress = "somename";
Socket socket = new Socket(InetAddress.getByName(ipAddress), 12345);

和这个

String ipAddress = "somename";
Socket socket = new Socket(ipAddress, 8888);

但是当我在我的Android应用上应用它时,它不起作用。在Android中有没有特殊的方法呢?

1 个答案:

答案 0 :(得分:0)

您也可以使用主机名代替IP地址。例如,如果您的服务器具有主机名“foo.bar.com”,则可以使用

Socket socket = new Socket("foo.bar.com", port);

在本地网络中,您应该能够使用本地PC的主机名。我刚写了一个成功连接到我的printserver的小例子:

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;


public class SocketTester {

    /**
     * @param args
     * @throws IOException 
     * @throws UnknownHostException 
     */
    public static void main(String[] args) throws UnknownHostException, IOException {
        //Create socket connection
           try{
             Socket socket = new Socket("printserver", 23);
             BufferedReader in = new BufferedReader(new InputStreamReader(
                        socket.getInputStream()));
             try{
                 while(in.read()!=-1){
                     String line = in.readLine();
                     System.out.println("Text received: " + line);
                 }
               } catch (IOException e){
                 System.out.println("Read failed");
                 System.exit(1);
               }

           } catch (UnknownHostException e) {
             System.out.println("Unknown host: kq6py");
             System.exit(1);
           } catch  (IOException e) {
             System.out.println("No I/O");
             System.exit(1);
           }

    }

}