2013-08-20 4 views
0

В моем приложении я использую GCDAsyncUdpSocket для связи UDP пакетов ...GCDAsyncUdpSocket тайм-аут

Я написал код, как ниже

GCDAsyncUdpSocket* UDPSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()]; 

[UDPSocket sendData:dataForSendToServer toHost:stringForHostId port:portNumber withTimeout:5 tag:1]; 

Мне нравится использовать свойство таймаута для повторной отправки Packet снова, если пакет истекло ...

В GCDAsyncUdpSocket API документа он говорит

The timeout for the send opeartion. If the timeout value is negative, the send operation will not use a timeout." 

Итак, таймаут с -1 будет работать для автоматической отправки пакетов? .. или любым другим способом сделать это?

Заранее спасибо.

ответ

0

Я думаю, что ваше понимание таймаута было отменено. Вот цитата из документа автора «Если значение тайм-аута отрицательное, операция отправки не будет использовать тайм-аут». Чтобы делать то, что вы планировали, вам нужно будет использовать положительное значение. И вы можете реализовать повторно отправить логику в методе обратного вызова тайм-аут:

- (void)udpSocket:(GCDAsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error; 
+0

Спасибо другу, я understood.So отрицательный таймаута не для повторной отправки пакета, просто послать пакет без каких-либо тайм-аут, и я должен использовать метод делегата didNotSendDataWithTag для повторной отправки пакета, если происходят такие ошибки, как GCDAsyncUdpSocketSendTimeoutError. –

 Смежные вопросы

  • Нет связанных вопросов^_^