2012-06-22 55 views
1

我曾嘗試使用GCDAsyncUdpPacket.m和.h文件來創建udp通信通道。但通過我可以只發送一條消息。我需要發送整個文件,例如圖像。如何在iPhone中使用UDP協議傳輸圖像?

任何幫助將不勝感激,因爲我對這個平臺是全新的。

+0

我也做了同樣的事情,但圖像沒有正確發送。如果你有解決方案,請給我想法。 –

+0

而我這樣做'UIImage * image = [UIImage imageNamed:@「images.jpeg」]; NSData * data = UIImagePNGRepresentation(image); [asyncSocket writeData:具有Timeout的數據:-1.0標籤:0];' –

回答

0

由於UDP不是一個錯誤檢查協議,只是將二進制數據封裝在UDP套接字中將不可靠,因爲一些數據包可能會丟失,或者在遠端出現亂序。

如果你想確保錯誤檢查,按順序和可靠的數據,打開一個TCP套接字併發送它。

在IOS中,您可以使用NSStream類來完成此操作,但您必須查看大量示例代碼才能瞭解它可以在iPhone應用程序中使用的各種方式。爲了實現它,您需要了解run-loops如何工作(NSRunLoop)以及委派如何在Cocoa中工作。

對我來說,我傾向於避免這一切,並在單獨的NSThread上啓動網絡任務,使用unix的socket(),connect()和send()原語打開TCP套接字。一旦你得到這些工作,他們可以被剪切並粘貼到其他代碼中(或放入個人代碼庫),所以你不必記住如何去做。 :-)

有很多BSD基元socket(),accept(),bind(),connect(),send()和recv()的示例代碼。