【问题标题】:Why can not I create tcp socket from Android device to PC为什么我不能创建从 Android 设备到 PC 的 tcp 套接字
【发布时间】:2016-07-30 01:30:03
【问题描述】:

我正在尝试将我的 Android 应用程序连接到桌面服务器。问题是当我尝试通过智能手机上的便携式 Wi-Fi 热点创建 LAN 时一切正常,但是当我将 PC 和手机连接到路由器时,我有 TimeOutException 在 Android 应用程序中创建一个套接字。另一方面,当我通过路由器将桌面客户端连接到桌面服务器时,它也可以正常工作,所以只有当我尝试通过路由器将移动客户端连接到桌面服务器时才会出现问题。

客户端代码(Java):

Socket socket = new Socket();
socket.connect(new InetSocketAddress(ip, port), 1000); // TimeOutException

服务器代码(C++/Qt):

QTcpServer m_tcp_server;
// ...
m_tcp_server->listen(QHostAddress::Any, m_port);

ip地址和端口正确(100%)

更新:

谢谢你们。

这只是一个路由器问题。我在另一个上测试了,没有问题

【问题讨论】:

  • I have TimeOutException creating a socket in。不,您的套接字创建得很好。但是套接字无法连接到服务器。请告诉您使用的是哪个 ip。
  • 我使用的是我通过 ipconfig 获得的 PC 的 ip(如果需要,则为 192.168.0.29)
  • 检查或关闭防火墙
  • 哪个端口号?
  • 我的电脑上没有防火墙,brandmauer 已关闭,路由器上的防火墙也已关闭。

标签: java android sockets tcp wifi


【解决方案1】:

尝试检查您在 android pohone 上分配的 ip 以及是否有到目标服务器 ip 的路由。

你有可能在 wifi 上获得不同的 ip,通过电缆获得不同的 ip。

您也可以尝试使用android net工具尝试连接到服务器。

【讨论】:

  • 我已经从 Android ping PC 并从 PC ping Android。平工作正常。我还使用网络发现 (Android) 扫描了 PC 的端口,但未找到服务器的端口。当我尝试通过nmap(Windows)扫描端口时,它说这个端口被过滤了,原因是无响应,但桌面客户端可以工作
猜你喜欢
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
相关资源
最近更新 更多