我最近遇到了一个非常荒谬的问题...... 我正在创建一个应该从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对象,因为之前连接在客户端上超时。没有任何东西进入服务器。
如上所述,这很奇怪,因为昨天一切似乎都有效。
答案 0 :(得分:0)
可能是您昨天通过Wifi连接,现在您正尝试通过3G / GPRS连接进行连接。因为如果您使用的是Wifi连接,那么可能是您的服务器和Android在同一网络上导致连接成功的情况。
您是否确保可以在公共网络外部访问服务器?