【发布时间】:2012-04-26 15:31:46
【问题描述】:
我的服务器和客户端代码可以完美地用作 Java 应用程序。服务器在我的本地机器上运行并监听端口 4444。任何 Java 应用程序都可以轻松连接,但是当我将代码移至 Android 时,无论我尝试什么,我都会不断收到 IOException。我读到您必须将“localhost”更改为“10.0.2.2”,但我仍然收到 IOException。我从 whatsmyip.org 尝试了我的 IP 地址,但它仍然给了我一个 IOException。这是我的安卓代码...
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?在 Windows 上打开一个命令窗口并在其中键入
ipconfig。只需将您的IPV4放入您的代码中即可。在 linux 上打开一个终端并执行ifconfig。显然,您的 ISP 已阻止从外部访问您的计算机。您的公共 IP 不是您想要的。
标签: java android sockets networking