问题标签 [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 回答
2051 浏览

ios - iOS 设备未使用 GDAsyncUdpSocket 接收 UDP 多播

下面的代码旨在在 239.255.255.250 上接收 UDP 多播消息,并简单地 NSLog 消息的内容。

如果我将消息发送到 iOS 设备的 IP(即来自终端echo foo | nc -u 10.1.10.249 1900),则会收到消息并 NSLog'd。

但是,如果我将消息广播到多播地址 ( echo bar | nc -u 239.255.255.250 1900),则不会收到该消息。

启动时不记录错误消息。

关于我要去哪里出错的想法?

0 投票
0 回答
699 浏览

ios - 在 iOS 上,如何使用 GCDAsyncUdpSocket 监听两个端口?

GCDAsyncUdpSocket在 iOS 上使用(成功)使用 UDP 发送和接收数据,如下所示:

设备在端口 3054 上发回数据,我使用委托调用看到了该端口udpSocket:didReceiveData: fromAddress:withFilterContext:。该设备还在端口 9750 上发送信息,我也想看看。我试过不绑定到特定端口,但由于其他原因失败了。我也尝试过使用

虽然这些调用成功且没有错误,但我没有从端口 9750 获取数据。

我确实知道正在发送数据;这是iOS方面的问题。我知道这是因为:

  1. 逻辑分析仪在端口 9750 上看到数据到达设备进行传输;这是暗示性的,但不是决定性的。

  2. 我可以将设备用于发送第二个数据流的端口切换到 3054,在这种情况下,我的应用程序会看到数据。不过,这是不可取的。

那么,如何在 iOS 上使用相同的 IP 地址从两个 UDP 端口读取数据GCDAsyncUdpSocket

0 投票
0 回答
365 浏览

ios - 当控制中心向上滑动时,IOS 8 上的 GCDAsyncUDPSocket WiFi 中断?

这听起来很奇怪,但我想知道是否有其他人在 IOS 8 上遇到过这种情况。

我有一个使用 GCDAsyncUdpSocket 通过 UDP 接收低延迟音频的应用程序,它每 20 毫秒接收大约 200 字节的数据包。在前景、背景等方面效果很好。

但是,如果我在我的应用程序运行时向上滑动 IOS 8+ 上的控制中心,则套接字的响应会在接下来的 40 秒左右变得非常突发(我会收到突发的数据包,每半秒暂停大约 350 到 400 毫秒) ,然后它消失并开始正常工作。调试 GCDAsyncUDPSocket 调用我可以看到 GCD 事件处理程序是在这个延迟时间间隔调用的(它似乎不是我的代码)。

如果我通过蜂窝连接使用我的应用程序,那么在控制中心向上滑动(没有暂停/延迟)期间它是非常好的。这只是 WiFi 的情况。

这在 IOS 7 或 IOS 6 上不是问题。

它发生在从 iPhone 4 到 6 Plus 的所有 iPhone 型号上。

有没有其他人看到这个问题?有什么建议么?我不想这样做,但我应该看看基于非 GCD 的网络 API 吗?

0 投票
2 回答
21915 浏览

ios - Swift:使用 GCDAsyncUdpSocket 接收 UDP

背景:

我希望能够在我的 iOS 应用程序和服务器之间发送和接收 UDP 数据包。服务器将每条传入消息回显给客户端应用程序。服务器经过测试并确认工作正常。我有一个 StartViewController,它启动两个实现 GCDAsyncUdpSocketDelegate 的类,一个用于发送,一个用于接收。“发送套接字”正在工作,服务器接收消息。

问题:

该应用程序在发送后永远不会收到传入的消息。由于 didReceiveData 从未被调用,因此侦听套接字设置可能是错误的。

我做错了吗?

开始:

收到:

发送:

编辑: 添加了忘记的代码行。

0 投票
0 回答
550 浏览

objective-c - 使用本地网络中的 GCDAsyncUDPSocket 将数据发送到多播套接字

我在一个应用程序中工作,您可以在其中订阅多播套接字以收听发布到该套接字的其他设备。聆听时一切正常。问题是当我尝试发布到本地网络中的那个套接字时。它说“网络无法访问”,我无法发送数据。我的代码是这样的。

端口 5775
套接字@“225.4.5.6”

听众

客户(发件人)

我试着这样写。

当我可以访问互联网时,此代码有效。但是当我连接到本地网络时,发件人会说“网络无法访问”。我不知道我做错了什么。希望您能够帮助我。谢谢。

0 投票
0 回答
372 浏览

ios - iOS 上使用 GCDAsyncUdpSocket 的大数据

我正在尝试制作一个将使用 UDP 连接的聊天应用程序。使用GCDAsyncUdpSocket这里我可以连接小文本并将其发送到具有此功能的另一台设备

但对于大文本,它不起作用。我在这里有两个问题:

  1. GCDAsyncUdpSocket 会自动将数据分解成一小块 UDP 数据包并发送出去吗?或者他们一次发送所有数据?
  2. 如何在使用 GCDAsyncUdpSocket 发送之前将整个文本分成小块并跟踪这些块?是否有任何可用的第 3 方代码?
0 投票
2 回答
2147 浏览

ios - 使用 GCDAsyncUdpSocket 的 iOS swift 应用程序

我对构建 iOS 应用程序非常陌生。

我正在尝试创建一个类来接收 udp 多播消息,但我无法让它完全正常工作......

谁能看到我在哪里犯了错误?我得到 UDP 套接字已打开消息,但没有收到任何包。我知道它们正在被发送,因为我正在用wireshark捕获它们。

从我的视图控制器调用发现

任何建议都会有所帮助。

0 投票
2 回答
2409 浏览

ios - 无法接收使用 GCDAsyncSocket 发送的 UDP 数据包的响应

我正在制作一个应用程序来发送UDP数据包以打开LED bulb. 当我连接到Ad-hocWifi bridge.

现在,我想配置它Wifi bridge以便它可以连接到我的主路由器。我设置了 AT 命令来执行此过程,但不知何故我无法接收到Wifi bridge我发送给它的命令的响应。

程序如下:-

  • 第 1 步:发送 UDP 消息到 LAN 广播 IP 地址“10.10.100.255”和端口 48899 =>“Link_Wi-Fi”
    LAN 上的所有 Wifi 网桥都会响应它们的详细信息。响应为“10.10.100.254,ACCF232483E8”

  • 第 2 步:(更改 wifi 网桥上的设置可选):然后发送“+ok”到 LimitlessLED Wifi 网桥。向步骤 1 返回的响应 IP 地址发送 UDP 消息 "10.10.100.254" => "+ok"

  • 第 3 步:(更改 wifi 网桥设置可选):之后您可以向模块发送 AT 指令(以 \r\n 结尾)。

发送UDP数据包的代码如下

现在为了设置套接字并接收数据,我正在使用这两个委托方法:

并且要接收数据,这是在发送 UDP 数据包后被调用的方法。GCDAsyncUdpSocket这是我在项目中使用的类的委托方法,用于发送和接收 UDP 数据包。

一旦我能够收到响应,我将能够发送下一个 AT 命令来配置网桥。

谢谢。任何帮助将不胜感激。

0 投票
0 回答
264 浏览

ios - 如何在不向服务器发送请求的情况下侦听 UDP 数据包在 iOS 中使用 GCDAsyncUdpSocket

我想制作一个能够在不向服务器发送任何请求的情况下侦听特定端口的应用程序。这意味着,另一个应用程序将每 10 秒广播一次数据,而我的应用程序需要收听该广播而不向该其他应用程序发送任何请求。我尝试使用GCDAsyncUdpSocket库中的示例 Echo 服务器代码进行测试,但 Echo 服务器应用程序无法接收任何数据。有没有办法做到这一点?

0 投票
1 回答
156 浏览

objective-c - GCDAsyncUdpSocket接收数据时抛出malloc错误

我正在使用 GCDacyncUDPSocket 接收数据。在下面的代码中,我正在创建一个 (timestamp, data) 元组并将其添加到另一个数组中。这是我的代码:

我收到以下错误 malloc:* 对象 0x7a9c2820 的错误:double free *在 malloc_error_break 中设置断点以在此行进行调试“[_rcvdJitter addObject:addToList];”

我能得到一些帮助吗?

谢谢