標籤:
二、AsyncSocket介紹 1)iOS中Socket編程的方式有哪些? -BSD Socket BSD Socket 是UNIX系統中通用的網路介面,它不僅支援各種不同的網路類型,而且也是一種內部進程之間的通訊機制。而iOS系統其實本質就是UNIX,所以可以用,但是比較複雜。 -CFSocket CFSocket是
蘋果提供給我們的使用Socket的方式,但是用起來還是會不太順手。當然想使用的話,可以細細研究一下。 -AsyncSocket 這次部落格的主講內容,也是我們在開發項目中經常會用到的。 2)為什麼選擇AsyncSocket?
iphone的CFNetwork編程比較艱深。使用AsyncSocket開源庫來開發相對較簡單,協助我們封裝了很多東西。
三、
AsyncSocket
詳解 1??說明 在我們開發當中,我們主要的任務是開發用戶端。所以詳解裡主要將用戶端的整個串連建立過程,以及在說明時候回調哪些函數。在後面的範例程式碼中,也會給出伺服器端的簡單開發。 2??過程詳解 1.建立串連 - (int)connectServer:(NSString *)hostIP port:(int)hostPort 2.串連成功後,會回調的函數 - (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port 3.發送資料 - (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag; 4.接受資料 -(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag 5.中斷連線 - (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err - (void)onSocketDidDisconnect:(AsyncSocket *)sock 主要就是上述的幾個方法,只是說在真正開發當中,很可能我們在收發資料的時候,我們收發的資料並不僅僅是一個字串封裝成NSData即可,我們很可能會發送結構體等類型,這個時候我們就需要和伺服器端的人員協作來開發:定義怎樣的結構體。
iOS開發 socket編程