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

时间:2016-04-30 16:19:46

标签: objective-c sockets cocoa udp gcdasyncudpsocket

我使用GCDAsyncSocket在我的应用程序中发送图像。图像很大,因此我将其数据拆分为许多小数据包,这些数据包保存在名为NSMutablearray的{​​{1}}中。

sort

但是每个数据包发送都太近了,大多数数据包都会丢失。要解决这个问题,我按如下方式添加一行代码:

GCDAsyncUdpSocket *sendSocket;
sendSocket = [[GCDAsycUdpSocket alloc] initwithDelegate:self delegateQueue:dispatch_get_main_queue()];
for(int i = 0;i < sort.count; i++)
{ 
   [sendSocket sendData:[sort objectAtIndex:i toHost:@"239.1.1.110" port:46110 Timeout:-1 tag:1];
}

因此,它使我的应用程序变得怪异。所以我想知道任何其他方式将timeInterval添加到每个发送。感谢非常感谢,非常感谢。

1 个答案:

答案 0 :(得分:0)

在GCDAsyncudpSocket.m中使用此代码

            if (socketError.code == ENOBUFS) {
                [self notifyDidNotSendDataWithTag:currentSend->tag   dueToError:[self errnoErrorWithReason:@"Buffer Full"]];
                [self endCurrentSend];
                [self maybeDequeueSend];
                usleep(10000);
            }