1

我最近遇到了一个非常荒谬的问题......我正在创建一个应用程序,它应该从 Android(当然是 Java)连接到服务器(用 C# 编写)

客户端(Java)的代码如下:

InetAddress serverAddr = InetAddress.getByName(SERVERIP); //My IP in a constant, it works with a local one...
Log.e("TCP Client", serverAddr.getHostAddress()); //Just to debug
Socket socket = new Socket(serverAddr, SERVERPORT); //Here I get an exception for the global IP

奇怪的是昨天一切都还在工作......我没有改变任何关于端口转发的东西,端口仍然转发到我的电脑。我还在 Android Manifest 中设置了“INTERNET”权限。

服务器代码是用 C# 编写的,也非常简单,只是为了测试:

Console.WriteLine("Waitng for connection");
TcpClient client = Server.AcceptTcpClient();
NetworkStream ns = client.GetStream();

在这里,我永远不会得到 TCPClient 对象,因为之前客户端上的连接超时。没有任何东西通过服务器。

如上所述,这很奇怪,因为昨天似乎一切正常。

4

1 回答 1

0

可能是您昨天通过 Wifi 连接,而现在您正尝试通过 3G/GPRS 连接进行连接。因为如果您使用的是 Wifi 连接,那么您的服务器和 Android 可能在同一个网络上导致连接成功。

您是否确保服务器可以在网络外部访问,我的意思是公开的?

于 2013-03-25T14:25:57.917 回答