2011-12-17 198 views
2

我已经能够建立我的客户端/服务器程序,以便服务器在PC上运行,并在Android上运行客户端。仿真器或设备。 服务器从客户端接收数据,但客户端不接收来自服务器的数据(所有UDP)。尽管服务器正在从recvfrom获取客户端的地址。 我想让它在Android模拟器和Android设备(我的手机)中都能正常工作。 我读到Android模拟器有一个虚拟路由器。我试图在服务器的同一台计算机上运行ip 10.0.2.2,但这并没有解决问题。 客户端和服务器之间存在沟通,这只是一方面。 任何我想念? 我在Android的JNI \ C++上使用Berkley套接字,而在PC服务器上使用winsock2。PC服务器,Android客户端。 UDP。客户端不接收来自服务器的数据包

+0

Windows服务器是否有路由到您的Android设备? – fge 2011-12-17 23:41:38

+0

我发现数据包嗅探Android模拟器确实收到UDP数据包。但由于它有一个虚拟路由器,这些数据包永远不会到达我的Android应用程序。 我不确定设备。 – user1097185 2011-12-18 10:28:16

+0

你的android虚拟设备上有telnet吗?尝试和'telnet服务器anopenport'并看看连接是否建立。 – fge 2011-12-18 10:41:58

回答

0

编辑:

我能够使它工作!所以UDP可以在Android上以两种方式工作! 问题是,winsock2上的select有第一个未使用的参数,而在linux \ Android上它被使用并且被称为nfds。发送NULL到该参数(就像我在winsock2中那样),基本上使select始终返回0.

感谢您的帮助fge。

+0

你是如何连接Android设备和PC的?是通过wif还是usb系绳?如果它是通过无线网络它是无线系绳? – Zax 2013-03-20 08:10:50

+1

Zak,PC与Lan连接到路由器。手机只是使用WiFi连接到相同的路由器。任何有效的TCP \ IP网络都可以。 – user1097185 2013-03-20 19:21:56

0

我想知道如果你会发布一个链接到android主题的udp数据包的源代码,有很多问题没有简单的答案。我自己找不到一个简单的udp数据包从PC发送到android的程序。