我正在嘗試使連接到Android應用程序的Java應用程序。使用主機名無法連接到Android服務器
我的電腦和手機都連接到同一個網絡。
這是Java客戶端至極在我的電腦上運行:
client = new Socket("muffin", port);
System.out.println("Connected");
output = new ObjectOutputStream(client.getOutputStream());
output.flush();
input = new ObjectInputStream(client.getInputStream());
System.out.println("Streams ready");
這是Android應用程序至極的作品作爲服務器:
server = new ServerSocket(port);
socket = server.accept();
Log.i("Server", "Connected");
output = new ObjectOutputStream(socket.getOutputStream());
output.flush();
input = new ObjectInputStream(socket.getInputStream());
在清單我添加了權限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
正如你可以看到我試圖通過使用它的主機名從我的電腦連接到android服務器(我改變了我的Android主機名「鬆餅」),但它不連接,它拋出一個異常:
java.net.UnknownHostException: muffin
如果不是我用的是IP地址的主機名,它的工作原理沒有問題。 看上去好像是找不到所謂的「鬆餅」局域網的設備,但是你可以從這個截圖我的調制解調器頁面,名字是正確的,請參閱:
這就是說,我tryed使用android應用程序作爲客戶端,而java程序作爲服務器,但它看起來像android有一些問題,因爲它甚至沒有連接到我的電腦,即使使用ip地址而不是主機名。
你對如何解決這個問題有什麼想法嗎?
在此先感謝並對我的英語感到抱歉,這不是我的母語。
但很多時候我通過使用我的電腦主機名連接了兩個Java應用程序(在不同的計算機上),它工作正常......我不想使用IP地址,因爲它每次都會改變。 – CtrlAltDel