ios-app

CocoaAsyncSocket使用のTCPクライアントiOS App

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 {...}

ロボット翔-電子部品ストアで、SLAM LIDARなどのロボット部品、ドローン、センサモジュールを販売しています。

モノづくり試作、研究開発に提案する、ロボット翔-電子部品ストア、センサ、Arduino互換ボード、拡張シールド、Bluetooth/Zigbee/WiFi/RFIDモジュール、ロボット制御ボード、ドローンが品揃えています。どうぞご利用下さい