【问题标题】:when connect to server, socket does not connect连接到服务器时,套接字不连接
【发布时间】:2012-07-19 06:15:16
【问题描述】:

我在 android 上有一个服务器-客户端应用程序,它支持客户端之间的消息传递。我在同一台计算机上的不同模拟器上运行服务器和客户端程序。当服务器正在监听端口时,客户端尝试使用这些语句连接它。

String serverIpAddresss = "10.0.2.2"; 
InetAddress addr = InetAddress.getByName(serverIpAddresss);
Socket socket = new Socket(addr,REDIRECTED_SERVERPORT);

在此之前我重定向了 5000:6000,因为 5000 是客户端,而 6000 是服务器的端口。新的套接字线它不起作用并且不创建套接字。谁能帮我如何连接客户端和服务器以及如何相互通信?

【问题讨论】:

  • 使用系统的静态 IP 代替“10.0.2.2”.. 并检查 INTERNET 权限。
  • 也来自系统上的命令外壳,adb forward tcp:5000 tcp:6000
  • 如果你的意思是 127.0.0.1 我已经尝试过,但它也不起作用。因为所有的模拟器和电脑都有自己的互联网空间,所以我必须先将它们连接起来,但我不能。而且我的清单中也有许可。
  • 不,静态 ip 的意思是,你的系统的 IP 你可以通过命令得到它,ipconfig 之类的东西,例如。 192.168.1.1
  • 我已将 5000 重定向到 6000 user370305。现在我要尝试静态 ıp。实际上我正在使用安全的网络计算机并与公司域连接。这个安全域是否可以阻止我的连接?

标签: android sockets


【解决方案1】:

将此添加到您的 android 清单文件中:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

编辑

Android 模拟器与您的主机连接到同一网络,但使用自己的 IP。默认情况下,它使用 NAT 连接。您应该能够连接。

检查您的服务器端口是否已打开以及防火墙规则。

【讨论】:

  • 我正在使用一台安全的网络计算机,并且我连接了一个公司域,因此有一些安全规则和一些限制。我的意思是有防火墙规则,我无法修复权限。
猜你喜欢
  • 2015-11-14
  • 2011-03-21
  • 1970-01-01
  • 2016-09-12
  • 2011-08-07
  • 2017-02-25
  • 2021-02-11
  • 2014-10-16
  • 2021-04-19
相关资源
最近更新 更多