iPhone wifi使用socket串連Internet

來源:互聯網
上載者:User

 轉載自:http://www.cocoachina.com/bbs/read.php?tid=21242&page=1

iPhone wifi使用socket串連Internet

1.使用AsyncSocket(http://code.google.com/p/cocoaasyncsocket/)
來做為Socket的一個基礎庫.

2.在該庫裡面提供了一個EchoServer,我們可以利用這個程式直接在MAC系統上面運行一個測試伺服器起來.

3.根據AsyncSocket(http://code.google.com/p/cocoaasyncsocket/wiki/iPhone)的WIKI將AsyncSocket加入到iPhone的工程裡面,記得將TARGET_OS_IPHONE這個宏在工程上面給定義一下.

4.編譯工程通過.

5.串連伺服器代碼:
**********************************************
// 建立一個Socket實體並串連到本機伺服器的7777連接埠
_client = [[AsyncSocket alloc] initWithDelegate:self];
NSError *err = nil;
if (![_client connectToHost:@"127.0.0.1" onPort:7777 withTimeout:1.0f error:&err]) {
    NSLog(@"client net:%@", err);
}

// 添加事件響應函數
A:- (void)*****ocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port;
B:- (void)*****ocketDidSecure:(AsyncSocket *)sock;
C:- (void)*****ocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err;
D:- (void)*****ocketDidDisconnect:(AsyncSocket *)sock;
E:- (void)*****ocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag;

// 在函數A中請求讀取資料, AsyncSocket內部會在有接收到資料的時候調用函數E
[_client readDataWithTimeout:-1 tag:0];

// 函數E被調用過之後這個讀取請求就結束了,我們不想讓它結束掉, 所以在函數E結尾處加入, 這樣讀取過程就可以一直持繼下去了
[_client readDataWithTimeout:-1 tag:0];

// 在函數A裡面將傳入的sock給記錄下來,這就是我們已連線的服務器的socket介面了
_server = sock;

// 發送資料到伺服器
NSData* data;
[_server writeData:data withTimeout:-1 tag:1];
**********************************************

6.這樣子我們基本就可以實現與伺服器進行收發訊息的過程了(注意:這些回呼函數都是在主線程進行的,並未在其它的線程中)

7.其它的響應事件未去做過多關注, 請自行解決了.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.