2010-11-09 107 views
17

有沒有人有從iPhone SDK發送UDP數據包的好教程?從iPhone發送UDP數據包

編輯:

竟是真的很容易做到這一點...

RTFM!

包括AsyncUdpSocket只是在頭部添加此之後:

AsyncUdpSocket *socket; 

而且在主:

NSData *data = ... 
[socket sendData:data toHost:@"192.168.x.x" port:5002 withTimeout:-1 tag:1]; 

測試時不要忘記讓您的服務器的防火牆UDP通訊!

+0

有點歷史......在一個階段有絕對不可思議的AsyncSocket庫,最初由神祕的Dustin J. Voss創建。 (有時稱爲CocoaAsyncSocket)。它有一個簡單的UDP示例代碼,它是iOS開發的核心。如果你可以挖掘它,它可能仍然是有價值的。這是一個不可思議的圖書館。 – Fattie 2016-05-22 13:14:11

+0

如何處理IP地址變化 – remyr3my 2017-07-10 08:05:35

+0

@ Cyph3r您需要使用一些自定義邏輯來設置'NSString'變量,您可以在'toHost'參數中傳遞這個變量。或者,也可以使用域名並設置DNS記錄,而不是使用IP地址,並在必要時進行更新。這完全取決於你想要做什麼。 – 2017-07-27 09:13:19

回答

15

CocoaAsyncSocket是一個不錯的庫,它包含一個名爲AsyncUdpSocket的類,該類是圍繞底層套接字API的Obj-C封裝器。

+0

我會在途中給你正確的答案!對於任何人閱讀這個問題的同一問題,我發佈了一些代碼作爲編輯的問題。 – 2010-11-10 00:52:19

+0

鏈接不再工作:-( – Xander 2013-03-11 13:26:08

+0

鏈接已更新爲github上的新主頁:https://github.com/robbiehanson/CocoaAsyncSocket – 2013-03-11 17:11:10

2

您可以使用CFNetwork框架創建一個CFSocket的UDP套接字。這裏是CFSocket reference

+0

因此,要發送一個UDP數據包到我的服務器,我只是使用CFSocketSendData? – 2010-11-09 22:00:04

+0

是的,在使用IPPROTO_UDP創建CFSocketCreate之後,可以使用CFSocketSendData。 Mac網絡編程郵件列表是查找示例的好地方:http://lists.apple.com/archives/macnetworkprog/ – Donald 2010-11-09 22:26:07

+0

AsyncUdpSocket更簡單! :) – 2010-11-10 00:54:05