【问题标题】:Android Tcp Server/ClientAndroid Tcp 服务器/客户端
【发布时间】:2014-03-01 21:00:04
【问题描述】:

我看到了服务器/客户端 tcp 通信的教程。该教程是:

http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/

我将服务器程序放在安卓平板电脑上,将客户端程序放在另一台安卓平板电脑上...我为服务器打开端口 6000。我将服务器 IP 地址放在客户端代码上...

问题是服务器和客户端不通信... 我按照教程中的步骤操作,我尝试使用仿真器程序,但再次不沟通..

请帮帮我

谢谢 枇杷

【问题讨论】:

    标签: android tcp


    【解决方案1】:

    您在客户端上使用了什么 SERVER_IP ?您需要在此处输入您的服务器的服务器 IP 地址。

    【讨论】:

    • 我把ip地址放到安卓平板上,服务器程序在哪里
    • 听起来不错。您可以检查是否可以从您的开发机器 ping 两台设备,然后您可以检查从一台设备到另一台设备的 ping(为此下载一个应用程序)。如果 ping 正常,则问题出在您的应用程序中,否则问题出在网络中(路由器、防火墙、公共/私有 IP 等)。
    • 如果我可以从 android 平板电脑 ping 到另一个 android 平板电脑并且工作正常,那么程序是假的?
    • Ues,如果你能 ping 通它可能意味着你的代码有问题。如果你不能ping你必须先解决网络问题。
    【解决方案2】:

    如果您使用的是本地 IP,很明显这不是路由器防火墙相关的问题,因为您在同一个网络下,所以只有几种可能性:

    • 在服务器端的那个 IP 上的那个端口上没有任何监听
    • 服务器端的本地防火墙阻止了该连接尝试
    • 您没有使用WIFI,所以您不在同一个网络下。

    如果您使用公共 IP,请总结防火墙阻止问题。可能有被阻止的端口阻止了您的连接。

    您应该确保您可以通过其他方式打开该服务,这将有助于您调试罪魁祸首。如果您已经这样做了,我建议您使用一些调试工具来跟踪 TCP 数据包(我也不知道您在目标机器上使用哪种操作系统;如果是一些 linux 发行版,tcpdump 可能会有所帮助)。

    假设您在 AndroidManifest.xml 文件中拥有android.permission.INTERNET 权限。

    【讨论】:

    • 1) 在服务器端的那个 IP 上的那个端口上没有任何监听——也许 2) 服务器端有一个本地防火墙阻止了连接尝试——我没有想想 3)你没有使用 WIFI,所以你不在同一个网络下。---平板电脑是同一个 wifi..
    • 那么检查第一个原因
    • 服务器和客户端安装到安卓平板...安卓版本为4.2.2。我不明白这一点:“你应该确保你可以以某种方式打开该服务,这将有助于你调试罪魁祸首。如果你已经这样做了,我建议使用一些调试工具来跟踪 TCP 数据包(我也不知道你在目标机器上使用什么样的操作系统;如果是一些 linux 发行版,tcpdump 可能会有所帮助。”
    • 如何理解我的路由器是否打开了一个端口??
    • 这取决于你的路由器,它不是本网站的主题,所以我可以给你一些指导:你必须在路由器中登录并检查端口的Forwarding。但是,如果您不想这样做,请使用本地 IP 地址,这样您就可以确认或放弃该问题,因为在同一个网络中您没有路由器防火墙问题。
    猜你喜欢
    • 2013-02-17
    • 2023-03-21
    • 2012-12-18
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2012-01-04
    • 2012-11-03
    相关资源
    最近更新 更多