iphone 下AsyncSocket網路庫程式設計

2021-06-03 02:08:07 字數 1796 閱讀 4639

phone的標準推薦cfnetworkc庫程式設計.但是程式設計比較煩躁。在其它os往往用類來封裝的對socket函式的處理。比如mfc的casysncsocket.在iphone也有類似於開源專案.cocoaasyncsocket庫

官方**:

它用來簡化cfnetwork的呼叫.

一.在專案引入asyncsocket庫

2.把asyncsocket庫原始碼加入專案

3.在專案增加cfnetwork框架

注意這裡xcode 有乙個bug。cfnetwork框架沒有在frame列表當中。

在xcode3.1.4中,在framework目錄右健,選擇add-->existingfiles... 

選擇如下目錄

/developer/platforms/iphoneos.platform/developer/sdks/iphoneosx.y.sdk/system/library/frameworks/cfnetwork.framework

注意這裡iphoneosx.y.sdk是相應的版本,在xcode3.1.4中可以選擇iphoneos 3.1.3sdk這個最高版本

二.tcp客戶端

1. 在controller標頭檔案加入asyncsocket指標

#import

#import "asyncsocket.h"

@inte***ce helloiphoneviewcontroller : uiviewcontroller  

3.增加socket響應事件

因為initwithdelegate把將當前物件傳遞進去,這樣只要在當前物件方法實現相應方法.

4.關於nsdata物件

無論socket收發都採用nsdata物件.它的定義是

nsdata主要是帶乙個(id)data指向的資料空間和長度length.

nsstring轉換成nsdata 物件

nsdata* xmldata = [@"testdata"datausingencoding:nsutf8stringencoding];

nsdata 轉換成nsstring物件

nsdata * data;

nsstring *result = [[nsstring alloc]initwithdata:data encoding:nsutf8stringencoding];

4.傳送資料

asyncsocket  writedata  

方法來傳送資料,它有如下定義

-(void)writedata:(nsdata *)data withtimeout:(nstimeinterval)timeouttag:(long)tag;

以下是乙個例項語句.

nsdata*adata= [@"test data" datausingencoding: nsutf8stringencoding];

[sockwritedata:adata withtimeout:-1 tag:1];

5.接收socket資料.

在onsocket過載函式,有如定義採用是專門用來處理socket的接收資料的.

-(void)onsocket:(asyncsocket *)sock didreaddata:(nsdata *)datawithtag:(long)tag

在中間將其轉換成nsstring進行顯示.

nsstring* astr = [[nsstring alloc] initwithdata:dataencoding:nsutf8stringencoding]; 

nslog(@"===%@",astr); 

[astrrelease];

win 下 安裝 iphone 環境

引用 在windows xp上安裝虛擬機器 vmware workstation 7.0。本文安裝的是vmware workstation 7.0.0 203739。2.2 建立虛擬機器 使用file new virtual machine建立乙個虛擬機器。在選擇作業系統時,選擇other free...

TinyXml 在iPhone下的解析

要解析的xml原始檔 12345 下面開始解析.看原始碼.這個最直接了哈.nsstring strxml nsstring stringwithcontentsoffile mtctest.xml encoding nsutf8stringencoding error nil const char ...

iphone下用指令碼開發彙總

指令碼的優點就是方便,易學。這兒介紹幾個庫給大家,可以方便用lua在iphone上開發。1.love2d 開發遊戲的,開源庫 2.wax 3.getmoal 4.corona 5.moai open source lua的方便不用多說,不懂c c 沒關係,不懂objective c沒關係,只需要學學...