2012-01-08 3 views
1

を使用して:接続IをWi-Fi経由で2台のPCを接続してきたと私は以下の例のようにこれを行うには、IPアドレスを使用しているコンピュータ名の代わりにIPアドレス

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

私のIPアドレス定期的に変更してください。これは私にとって面倒です。私はこの代わりにコンピュータの名前を使用したいと思います。これはどのように可能ですか?

EDIT:以下の回答から

、私は2台のPC上で、このようにそれを行うことができました:

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

この

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

が、私は私にそれを適用する場合Androidアプリ、それは動作しません。 Androidでそれを行う特別な方法はありますか?代わりに、あなたはまた、ホスト名を使用できるIPアドレスの

+2

Javaがこれに使用できる名前解決システムを持っていなければなりません。 Windowsの場合、おそらくAndroidにWINSの解像度がありますか? InetAddressの '.getByName(" themachinenamehere ")' – fge

答えて

0

。お使いのサーバがホスト名「foo.bar.com」を持っている場合たとえば、あなたがローカルPCののホスト名を使用することができるはずローカルネットワークで

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

を使用することができます。私はちょうど私の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); 
      } 

    } 

} 
+0

これは常に動作しません。いつ、どのような状況だったのか正確には思い出せませんが、うまくいかなかったことは間違いありません。 OSに依存していると私は思う。 –

+0

私はこれを試してみましたが、私のPCで正常に実行できましたが、私のAndroidデバイスでは動作しません。それは強制的に閉じる。 –