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

swift - 如何在 iOS swift 中使用 UDP 套接字流式传输音频?

我对这个网络概念真的很陌生,但是我必须使用 UDP 套接字流式传输音频文件,并且在搜索了一周之后,我并没有真正得到任何有用的东西。我使用了 CocoaAsyncSocket,并尝试将字符串从发送方应用程序发送到接收方应用程序,但它没有收到任何内容。

在侦听器视图控制器中,我实现了 didReceive 委托方法,但它没有收到任何东西。任何人都可以请至少帮助我处理字符串部分,以便我可以从发送者应用程序发送一个字符串并可以在接收者应用程序中接收?

0 投票
1 回答
193 浏览

swift - GCDAsyncUdpSocket 套接字在发送 255 个数据包之间关闭

我有一个模块,我必须通过向 255 个 IP 地址发送数据包来发现该模块。例如。已连接 IP:192.188.2.1 然后我必须发送一个更改最后一个值的数据包,即

但是在发送这么多数据包时,它在 udpSocketDidClose 委托方法中显示错误

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

首先为什么我会得到这个错误,有没有其他方法可以实现这个结果。

编辑 :

尝试运行此代码,我正在尝试从连接到同一路由器的设备获取响应。要查找设备 IP,我使用上面的代码。但是套接字有时会关闭,有时它会工作,有时它不会,我无法找到关闭它的解决方案。

谢谢

0 投票
1 回答
89 浏览

swift - 关于 Swift 中带有 GCD 的 UDP 套接字的“表达式类型不明确”错误(DispatchQueue)

当我编写 TCP...

那挺好的

但是当我编码UDP时......

错误说Type of expression is ambiguous with more context

我不知道我该如何解决。我搜索了“DispatchQueue”和 GCD 的定义,但仍然没有答案。

如果有人可以帮助我,我将不胜感激!!!

0 投票
0 回答
47 浏览

ios - GCDAsyncUdpSocket 在“没有到主机的路由”和“主机已关闭”之间停止工作

所以我这里有一个情况。场景是我有一个连接到路由器的物联网设备,而我的 iPhone 连接到同一个路由器。为了从我的 iOS 应用程序中获取硬件设备的本地 IP 和端口,我将 UDP 消息发送到 192.168.1.<1-255>:9553。9553 是硬件设备的端口。

在我点击正确的 IP(比如 192.168.1.124:9553)后,硬件设备会按预期返回正确的端口(例如 192.168.1.124:42056)。

但问题来自iOS+GCDAsyncUdpSocket,它有时工作,有时不工作。

它在两者之间停止工作。无论我重新启动应用程序多少次,它都无法正常工作。

让它再次工作的唯一方法是打开/关闭 iPhone 的 WiFi。

我不认为这是 GCDAsyncUdpSocket 的问题,但 iOS 正在限制 IP 的扫描。我该如何摆脱它。我正在使用 iOS 14.5,是的,我知道多播权利,但这不是多播广播,即使没有此权利,它有时也可以工作。

我用来创建套接字的代码:

我如何发送 UDP 消息:

我该如何解决这个问题?已经咨询了几乎所有关于此的 SO 问题。