问题标签 [gcdasyncudpsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
296 浏览

objective-c - 如何使用GCDAsyncUdpSocket连续发送udp数据包

我使用 GCDAsyncSocket 在我的应用程序中发送图像。图像很大,所以我将其数据拆分为许多小数据包,这些数据包保存在一个NSMutablearray被调用的sort.

但是每次发送的数据包距离太近,大部分数据包都会丢失。为了解决这个问题,我添加了一行代码如下:

结果,它使我的应用程序变得很奇怪。所以我想知道在每次发送中添加 timeInterval 的任何其他方法。感谢任何帮助,提前非常感谢。

0 投票
2 回答
2039 浏览

ios - GCDAsyncUDPSocket:发送成功但未收到任何数据

我正在尝试创建一个 UDP 套接字并将数据发送到广播端口,以便我可以在同一 WiFi 网络中的其他设备上接收相同的数据。我正在计算此处接受的答案中给出的广播端口的 IP 地址。

之后,我编写了一些连接代码,如下所示:

我成功发送数据作为委托方法 didSendData: 被调用。

请指导我在这里缺少什么。

谢谢!

更新: 用于从广播端口接收数据的 Cpde:

我计算后得到的广播IP是192.168.2.255

更新2::

我面临的情况真的很不同而且很奇怪。接收有时有效,有时无效。当我安装两个应用程序时,没有收到任何数据。只有发送成功。我保持应用程序打开,一段时间后应用程序开始接收数据。在某些情况下,它会在一段时间后停止接收或继续接收而没有任何问题。可能是什么问题?

0 投票
1 回答
458 浏览

ios - GCDAsyncUdpSocket 不接收任何数据

我正在处理音频数据的 UDP 传输。我正在使用 CocoaAsyncSocket-GCDAsyncUdpSocket。当我的项目在 iPhone 6 上运行时,我只能接收部分数据。几秒钟后,应用程序无法再接收数据,但仍可以发送数据。我尝试在 iPhone 4 上运行,没有这样的问题。谁能解释可能出了什么问题?

0 投票
1 回答
837 浏览

ios - 接收 UDP 消息

我在特定端口上接收消息时遇到问题。发送工作正常。

代码如下所示:

我在网络统计中看到应用程序正在接收数据包: 数据包

但我在控制台中看不到任何东西。一些想法?

0 投票
0 回答
345 浏览

ios - 无法通过 UPNP 请求快速从 WeMo 设备接收数据

我的本地网络中有 Wemo belkin 设备,我正在通过 upnp 呼叫发送数据,但我无法从 wemo 设备接收响应。这是我的代码:

这是我得到的回应:

--------- didReceiveData ----------

M-搜索 * HTTP/1.1

主机:239.255.255.250:1900

男人:“ssdp:发现”

MX: 1

ST: urn:dial-multiscreen-org:service:dial:1

用户代理:谷歌浏览器/54.0.2840.71 Mac OS X

--------- didReceiveData ----------

M-搜索 * HTTP/1.1

主机:239.255.255.250:1900

男人:“ssdp:发现”

MX: 1

ST: urn:dial-multiscreen-org:service:dial:1

用户代理:谷歌浏览器/54.0.2840.71 Mac OS X

解决了 :

我解决了这个问题,这是我做的完整代码,如果有人有同样的问题:

0 投票
1 回答
860 浏览

ios - iOS - GCDAsyncUdpSocket 抛出错误域 = NSPOSIXErrorDomain 代码 = 65“没有到主机的路由”

有时我会收到此错误

错误域=NSPOSIXErrorDomain 代码=65 "没有到主机的路由" UserInfo={NSLocalizedDescription=没有到主机的路由, NSLocalizedFailureReason=send() 函数中的错误。}

在某些路由器中打开 udp 套接字时。我不知道是什么原因造成的。

这是我打开 udp 套接字的代码:

请注意,这在 iPhone 7 中经常发生

0 投票
1 回答
353 浏览

ios - 如何在同一个 GCDAsyncSocket 对象上“connectToHost:”和“acceptOnPort:”?

我试图在同一个 GCDAsyncSocket 对象上“发送到”和“”接收,但它Attempting to accept while connected or accepting connections. Disconnect first.在尝试初始化对象时返回错误。

我的代码:

请帮忙!!

0 投票
0 回答
134 浏览

ios - 如何停止 GCDAsyncUdpSocket 发送命令?

我正在使用 GCDAsyncUdpSocket 在我的应用程序和一些智能家居硬件之间进行通信,并且在停止某个功能时遇到了问题。逻辑是这样的:

  1. 发送命令
  2. 如果您没有收到来自硬件的反馈,它会尝试再发送几次
  3. 当应用收到反馈时,会发布通知 DidReceiveDataForRepeatSendingHandler(连同 userInfo 中的设备信息)

例如,假设我有一个可以对 3 个命令做出反应的窗帘:打开、关闭和停止……并且该窗帘当前是关闭的。我按打开(并且没有收到反馈),在此过程中我改变主意,所以我按停止。现在应用程序将同时发送这两个命令。

所以事不宜迟,代码如下:

在我保存设备的 ViewController 上,我这样称呼它:

我所做的是我创建了一个单独的类,其中我有一个字典,其中设备的 ManagedObjectID 作为键,我们发送的命令就是它的值。因此,每当我们为已在列表中的设备发送命令时,我都会发布通知 SameDeviceDifferentCommand,其中包含设备的 ManagedObjectID 和旧命令的 userInfo。我在 RepeatSendingHandler 上使用它来填充 sameDeviceKey 字典。这就是我试图区分应该停止哪个功能的方式。

然而,有时它会做它应该做的工作,有时它不会。使用一堆打印件,我试图查看一切发生的顺序,而且似乎有时即使 sameDeviceKey 从通知中获取它的值 - 看起来它使用旧(nil)值,直到 repeatCounter 最大化。我不懂为什么。

谁能解释发生了什么,和/或建议比我提供的解决方案更好的解决方案?

(我删除了一些额外的代码,因为它与逻辑/问题无关)。请记住,我是一名大三学生,对此我还比较陌生。

0 投票
1 回答
2938 浏览

ios - GCDAsyncSocketDelegate 的 Swift 示例

请参阅这篇文章,我在从 GCDAsyncSocket 接收数据时遇到一些问题,并且找不到有效的 Swift 示例。

连接和写入方法正在运行,但从未调用过“didReceive”方法。

控制台输出:

开始wifi扫描!

正在连接仪器...!

didConnectToHost!

TX:<3f303630 410d> didWriteData

编辑 我解决了我的问题并将问题代码更改为准备使用的示例。

0 投票
0 回答
91 浏览

ios - 允许通过 GCDAsyncUdpSocket 在 xcode 9 中为 ios 应用程序列出 udp 端口

我正在尝试通过我的 ios 应用程序监听 udp 端口

GCDAsyncUdpSocket

并不断收到此错误:

看起来我需要在我的应用程序上禁用沙箱,我试图通过

plist 中的 com.apple.security.app-sandbox 但还没有运气。

提前感谢您的帮助。