GCDソケットを利用してTCPクライアントの構築を行う際、最も基本な設定をメモしておきます。
1、Githubより、CocoaAsyncSocketをダウンロードしておきます。
2、GCDAsyncSocket.h、GCDAsyncSocket.mをxcodeプロジェクトに取りこみます。
3、ターゲットviewcontollerにヘッダファイルをインポートして、宣言しておきます。
#import "GCDAsyncSocket.h"
@interface ViewController (){
GCDAsyncSocket *asyncSocket;
}
4、ソケットを初期化して、接続を行います。
asyncSocket=[[GCDAsyncSocket alloc] initWithDelegate:self
delegateQueue:dispatch_get_main_queue()];
NSError *error = nil;
uint16_t portno = [[[self port] text] intValue];
if (![asyncSocket connectToHost:[ipaddress text] onPort:
portno error:&error]){...}
else{...}
}
5、ソケットからデータを取り込みます。
[asyncSocket readDataWithTimeout:-1.0 tag:0];
6、ソケットへデータを書きこみます。
[asyncSocket writeData:requestData withTimeout:-1 tag:0];
withTimeout:-1 は、ライムアウトなしと意味します。
7、ソケットイベントハンドラもいくつか取りこみます。
- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:
(NSString *)host port:(UInt16)portno {...}
- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:
(long)tag {...}
- (void)socket:(GCDAsyncSocket *)sock didReadData:
(NSData *)data withTag:(long)tag{...}
- (void)socketDidDisconnect:(GCDAsyncSocket *)sock
withError:(NSError *)err {...}
以上
