使用ios自帶的socket

2021-07-02 07:03:43 字數 1381 閱讀 3039

ios自帶乙個小的cfsocket庫,可以解決簡單的socket連線需求

-(void)connect

;_socket

= cfsocketcreate(

kcfallocatordefault,

pf_inet,

sock_stream,

ipproto_tcp,

kcfsocketconnectcallback, //

型別,表示連線時呼叫

serverconnectcallback,//

呼叫的函式

null);

nsstring *serveraddr = @"192.168.1.33";

struct

sockaddr_in  addr;

memset(&addr , 0,sizeof(addr));

addr.sin_len = sizeof(addr);

addr.sin_family = af_inet;

addr.sin_port = htons(1978);

addr.sin_addr.s_addr = inet_addr([serveraddr  utf8string]);

cfdataref address = cfdatacreate(

kcfallocatordefault,

(uint8*)&addr,

sizeof(addr));

cfsocketconnecttoaddress(

_socket

,address,-1);

cfrunloopref

cfrl = cfrunloopgetcurrent();  

// 獲取當前執行迴圈

cfrunloopsourcerefsource =

cfsocketcreaterunloopsource

(kcfallocatordefault,

_socket,0

);//

定義迴圈物件

cfrunloopaddsource

(cfrl,source,kcfrunloopcommonmodes);

//將迴圈物件加入當前迴圈中

cfrelease(source);

}static

void serverconnectcallback(

cfsocketref socket,

cfsocketcallbacktypetype,

cfdataref address,

const

void *data,

void * info)

else }

-(void)readstream

}- (void)viewdidload

IOS 使用網域名稱進行Socket連線

cocos2d開發網 cocos2dev.com,謝謝!專案中用到了socket連線,由於我使用的boost,而boost的建立連線是只能傳ip位址的,而我伺服器位址是網域名稱,所以就要將網域名稱轉到ip。看了下 其實也挺簡單的。server address server domain hosten...

IOS開發之SOCKET長連線的使用

github 和http請求流程差不多,區別就是http請求每次更新資料都要向對應的埠傳送一次請求,之後返回資料之後關閉連線,而長連線就是客戶端和伺服器一直連著,當有資料更新的時候,伺服器會直接發給客戶端,不需要客戶端主動請求。在這過程中,為了保證服務端和客戶端一直是連線狀態,客戶端會定時不間斷的傳...

iOS使用系統自帶的請求方式方法介紹

接收伺服器響應的方法,http協議返回來對應nsurlresponse,其實是乙個nshttpurlresponse例項,nsurlresponse是所有請求的基類 void connection nsurlconnection connection didreceiveresponse nsurl...