GCDAsyncUdpSocket 不接收任何数据

Posted

技术标签:

【中文标题】GCDAsyncUdpSocket 不接收任何数据【英文标题】:GCDAsyncUdpSocket don't receive any data 【发布时间】:2016-09-01 08:59:16 【问题描述】:

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

【问题讨论】:

先贴出你的代码,这是行不通的。 我使用 [_udpSocket sendData:_middata toHost:_otherIPText.text port:i withTimeout:-1 tag:0];这个方法给GCDAsyncUdpSocket音频数据,并使用-(void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(id)filterContext这个GCDAsyncUdpSocketDelegate来接收数据。我发现这个委托依赖 GCDAsyncUdpSocket 做接收方法,但我的应用程序只运行这个方法几秒钟。 【参考方案1】:

请确保您使用单例。我和您有同样的问题,就我而言,我不使用单例,因为有很多对象,而且我每次都无法接收数据。

【讨论】:

感谢您的回答,正如您所说,我尝试了,但它不起作用。我尝试只使用接收数据方法。当我同时使用记录和接收方法时,会出现我所说的问题。我想知道在你的对象中如何使用这两种方法?

以上是关于GCDAsyncUdpSocket 不接收任何数据的主要内容,如果未能解决你的问题,请参考以下文章

为 GCDAsyncUdpSocket 设置最大数据包大小

GCDAsyncUdpSocket接收数据时抛出malloc错误

GCDAsyncUdpSocket 和多播发送和接收

如何接收组播 UDP?

通过所有可用的网络接口使用 GCDAsyncUdpSocket 进行 UDP 广播

使用 GCDAsyncUdpSocket 的 iOS swift 应用程序