我有服務器和客戶端代碼,作爲一個Java應用程序完美工作。服務器在我的本地機器上運行,並在端口4444上偵聽。任何Java應用程序都可以輕鬆連接,但是當我將代碼移到Android時,無論我嘗試什麼,都會收到IOException。我讀過你必須將「localhost」更改爲「10.0.2.2」,但我仍然收到IOException。我從whatsmyip.org嘗試了我的IP地址,但它仍然給我一個IOException。這裏是我的Android代碼...如何將Android程序套接至本地主機服務器?
package test.myPackage;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class TestProjectActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
Socket s = null;
try {
s = new Socket("10.0.2.2", 4444);
tv.setText("socket: CONNECTED!");
} catch (UnknownHostException e) {
tv.setText("socket: unknown host");
} catch (IOException e) {
tv.setText("socket: IO Exception");
}
}
}
您的本地網絡上的IP是什麼?你在Linux或Windows?在窗口上打開一個命令窗口並在其中鍵入'ipconfig'。只需將你的'IPV4'放入你的代碼中即可。在linux上打開一個終端並執行'ifconfig'。顯然你的ISP已經阻止了從外面訪問你的機器。你的公共IP不是你想要的。 – 2012-04-26 15:51:24