gpt4 book ai didi

c# - Android套接字仅在本地网络中工作

转载 作者:行者123 更新时间:2023-12-01 04:47:17 24 4
gpt4 key购买 nike

最近我遇到了一个很可笑的问题...我正在创建一个应用程序,该应用程序应该从 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 list 中设置了“INTERNET”权限。

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

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

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

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

最佳答案

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

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

关于c# - Android套接字仅在本地网络中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15617187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com