Android到Android TCP连接

Android到Android TCP连接,android,sockets,tcp,connection,Android,Sockets,Tcp,Connection,到目前为止,我看到的关于Android TCP连接的所有文档、示例和问题都是在Android设备和计算机之间进行的。尽管无线网络可能不可靠,但是否有可能通过WiFi在Android设备之间建立客户端-服务器TCP连接?如果有,如何实现 编辑:我想我应该详细说明我的情况。 我的Droid不会响应ping或接受来自任何东西的传入TCP请求,除非我首先将Droid设置为客户端,并将我的笔记本电脑设置为服务器。在这个初始连接建立之后,我可以从我的笔记本电脑ping,或者让Droid成为服务器,让我的笔记

到目前为止,我看到的关于Android TCP连接的所有文档、示例和问题都是在Android设备和计算机之间进行的。尽管无线网络可能不可靠,但是否有可能通过WiFi在Android设备之间建立客户端-服务器TCP连接?如果有,如何实现

编辑:我想我应该详细说明我的情况。 我的Droid不会响应ping或接受来自任何东西的传入TCP请求,除非我首先将Droid设置为客户端,并将我的笔记本电脑设置为服务器。在这个初始连接建立之后,我可以从我的笔记本电脑ping,或者让Droid成为服务器,让我的笔记本电脑成为客户端。我不能做的是让一个Droid成为服务器,另一个成为客户端,我总是会遇到“没有主机路由”的错误


感觉好像有什么东西阻止了传入的连接,除非设备启动了与其他设备的连接,即使这样,设备将接受的唯一请求也是与此设备的连接。如何使我的Droid成为一个服务器,接受来自本地intranet上任何设备的所有传入TCP请求?

您应该能够。就像你使用计算机/设备连接一样,除了在设备上运行客户机和服务器代码。

互联网的一个好处是,互联网不在乎你是在两台电脑、一台电脑和一部手机还是两部手机之间建立连接。我会看一下文档,这应该足以让您开始工作。

这当然是可能的。唯一的问题是计算出IP地址。我不希望电话有固定的IP。。。但是,如果在网络的某个地方有一个固定的“登录”服务器,两部手机都知道该服务器的IP,那么他们可以通过该服务器进行握手,然后继续点对点;唯一的问题是计算出IP地址。我不希望电话有固定的IP

试试这个; 使用手机上的网络浏览器登录此网站:它应向您提供IP地址


我有一个套接字实现在工作,问题不是通过internet连接设备,问题是连接本地intranet上的设备,这总是会产生“无主机路由”错误,即使在Droid上运行服务器的清单中设置了权限,也不起作用,因为设备不接受传入连接,除非它以前作为客户端与另一个设备启动了TCP连接。在这种情况下,当设备用作服务器时,它将接受的唯一传入连接来自上一个会话中的设备。这是我让Droid设备作为服务器运行的唯一方法,即使这样,它也不接受来自本地网络上任何其他设备的连接。你可能混淆了接入点/客户端的wifi概念和tcp服务器/客户端概念吗?也可能是将手机用作tcp客户端会触发wifi进入完全连接和活动状态,否则可能会超时。当服务器处于活动状态时,您可以每隔几分钟让服务器ping或查询访问点、dns服务器或其他内容。可能操作系统或其他应用程序正在阻止传入连接?我也有点想知道,因为我有一个应用程序,我想添加多人游戏。@Chris Stratton:这个问题与WiFi接入点无关,因为ping与同一本地intranet中的其他手机一起工作@不是很有创意:我也这么想,但我没有任何其他应用程序在设备上运行。我还没有谈到内核,但这可能就是问题所在…@kurifu我说的是android关闭wifi收音机,当它空闲时,它往往会关闭wifi收音机以节约电能。作为客户端连接可能会重新启动。我没有答案,但我可以告诉你,我的三星Galaxy S II也有同样的问题。这可能是某种安全措施,以避免病毒在公共Wifi网络上的不同设备之间传播吗?一些ISP可能设计了防火墙来抵御这种威胁,但如果本地网络上的设备能够直接相互通信,这些防火墙会提供任何帮助。。。?