- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
很抱歉,如果这已发布在我工作/寻找几天的地方。
问题:
当通过对等网络与 Android 设备进行通信时,我收到 SocketTimeoutExceptions。
详细信息:
发生这种情况时,android 设备使用自己的移动网络而不是 wifi(wifi 本来就不是为这种情况设计的)。
Android 设备成功地从 whatismyip.com 获取了它们的 ipAddress。
一台设备将通过我们正在使用的对等网络以外的其他方式向另一台设备发送其 IP 地址。
远程设备的ip地址会成功传到本地。
当本地设备通过对等网络响应时,会发生 TimeoutException。
我尝试过的:
将超时时间延长到相当长的时间。
使用其他安卓设备。
值得注意的:
应该注意的是,这个同一个点对点网络已经过测试,可以在局域网上的 PC(运行 linux 和 windows,如果重要的话)之间成功工作。还刚刚在我们的 PC 上通过有线互联网连接测试了点对点网络,它确实有效。
我的猜测:
我认为该设备以某种方式被 isp 隐藏了,我将不得不编写一些代码来执行类似于 nat 遍历的操作,但我不太确定。但是话又说回来,如果设备被隐藏,我应该得到一个连接被拒绝的异常。
非常感谢任何帮助。
附言我目前无法发布代码,即使我可以,整个过程也有几千行代码。
最佳答案
首先,我对点对点的体验仅限于 wifi 连接,但我相信一些概念也适用于 3G。
当您收到连接被拒绝错误时,这意味着您的网络数据包已经能够到达另一台设备,但该设备拒绝接受连接请求,而否定的答复到达您的设备。
当您遇到连接超时错误时,这意味着您的网络数据包无法到达其他设备,或者其他设备的应答没有到达您的设备。
现在让我们关注第二个错误(连接超时):
调试它的第一步是启动等待连接的设备,然后从具有网络访问权限的 Windows 或 Linux 计算机发出命令:
telnet deviceIp portWaitingForConnection
如果您看到 telnet 屏幕并且没有超时错误,则表示问题出在您发送请求连接的代码中。
如果你也出现超时错误,则确认你的网络数据包无法到达设备(或者应答无法到达你)
现在,可能是什么阻止了网络数据包到达设备。该设备可能位于路由器或防火墙后面。
如果设备在防火墙后面,您需要为传入连接打开防火墙端口。
如果设备在路由器后面(我相信是这种情况,否则您不需要从 whatismyip.com 获取 IP 地址)您需要配置路由器以允许重定向监听端口上的传入请求到本地设备的 ip 地址。
没有相关代码,我帮不上什么忙。
祝你好运。
关于java - SocketTimeoutExceptions 的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634193/
我正在用 robocopy 编写一个 powershell 脚本来从列表中复制“完整的”unc/文件名路径。我遇到的问题是 robocopy 似乎在我的源路径末尾添加了一个 \。 我有一个 C:\te
我发现守护程序通过这些代码创建了一个容器 // NewBaseContainer creates a new container with its // basic configuration. fu
是否有所有潜在 map 源的列表?在示例页面上,可以浏览四种类型的 map 。外面还有什么? http://tombatossals.github.io/angular-leaflet-directi
是否有所有潜在 map 源的列表?在示例页面上,可以浏览四种类型的 map 。外面还有什么? http://tombatossals.github.io/angular-leaflet-directi
我们的网站比较多,第一次使用ElasticSearch不知道应该怎么配置ES: 我们想使用 ES 作为这些网站的唯一搜索引擎,我们是否应该为每个网站设置单独的 ES 实例? (我想这可能比一个 ES
我需要一些关于我对 UNI 项目的想法的建议。 我想知道是否可以将一个音频文件从不同的音频源分成不同的“流”。例如,将音频文件拆分为:引擎噪音、火车噪音、人声、并非始终存在的不同声音等。 我不一定需要
我想设置“公共(public)彩票”,每个人都可以看到选择是随机和公平的。如果我只需要一点,我会使用例如当天收盘道琼斯指数的 LSB。问题是,我需要 32 位。我需要一个来源: 每日可用 全世界都可以
来自 pickle 的 python 文档: Warning The pickle module is not secure. Only unpickle data you trust. 什么是 pi
我试图安排一个 liquidsoap 流媒体源在未来的特定日期和时间播放。我相信这可以使用 Liquidsoap switch 命令来完成,但我无法理解此处描述的文档:http://liquidsoa
对于Shiny应用程序,我希望能够播放在 session 本身期间生成的音频文件。 如果它是我要上传的音频文件,我将使用 tags$audio(src = "www/name.wav", ty
我想更改我的 OpenGL 来源。图片会说明: 现在是这样的: 这就是我想要的: 当前代码 gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL
我正在尝试让 Stripe 运行起来,我几乎已经完成了,但有一件令人困惑的事情。 source: 'tok_visa' 部分。看起来它可以是“tok_mastercard”、“bank_account
我已经下载了 primefaces 源代码,看看是否可以从中学习。该 jar 包含一堆使用编写器来处理渲染等的 java 类。我期待找到一些 .xhtml 文件 ... and etc etc
如果我查看页面源代码,我会看到 styling += 'ul#topnav a.tabHeader5'; styling += '{'
我正在尝试根据显示器的大小更改背景图像。它不在服务器上运行。您可以在 https://github.com/Umpalompa/Umpalompa.github.io 找到我的所有代码. 我尝试同时使
从here的最底部开始.有一个 URL 生成器,我可以使用引荐来源网址在 Google Play 上生成指向我的应用程序的链接。我如何从谷歌分析中提取该 Activity 来源?我一直在谷歌上搜索,但
我用 Google Weather API 制作了一个插件,目前我正在从 Google 的 API 中提取图像。对于晴天,我正在拉 http://www.google.com//ig/images/w
是否可以通过环境变量为 @CrossOrigin 注释指定来源?我想这样做,以便我可以将相同的代码库用于 uat/staging/production。我希望我的 uat/staging 环境可以通过
我需要等待我的 JavaScript 中的文档准备就绪,才能在正文底部插入一个 div。 我想: 使此 JavaScript 文件尽可能小(如果可能,将其编译到 < 1kb) 在闭包中内联提供文档就绪
我正在开发电子邮件服务并想连接到谷歌帐户,是否可以将我的本地主机用作授权的 JavaScript 来源? 最佳答案 第 1 步:启用 Google+ API http://localhost:4567
我是一名优秀的程序员,十分优秀!