三.实现模板,将直接的代码添加进入就可以使用了
#import "AsyncSocket.h" #define theEndTag 255 @implementation SocketComm //初始话,创建socket - (id) init { self = [super init]; if (self != nil) { _sock = [[AsyncSocket alloc] initWithDelegate:self]; [_sock setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]]; } return self; } //发送数据 -(void)writeDataOnMainThread:(id)string { NSData *cmdData = [string dataUsingEncoding:NSUTF8StringEncoding] [_sock writeData:data withTimeout:-1 tag:0]; } //打开 - (NSInteger)SocketOpen:(NSString*)addr port:(NSInteger)port { if (![_sock isConnected]) { [_sock connectToHost:addr onPort:port withTimeout:timeout error:&err]; NSLog(@"connect to Host:%@ Port:%d",addr,port); } return 0; } //写数据 - (NSInteger)SocketWrite:(NSString*)cmd level:(NSInteger)level { if ([_sock isConnected]) { //处理发送数据,加入队列等待发送 } else { NSLog(@"Offline!"); } return 0; } //关闭 - (NSInteger)SocketClose { if ([_sock isConnected]) { [_sock writeData:Data withTimeout:-1 tag:theEndTag]; [_sock disconnectAfterReadingAndWriting]; } return 0; } #pragma mark - #pragma mark Delegate - (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err { NSLog(@"willDisconnectWithError:%@",err); } - (void)onSocketDidDisconnect:(AsyncSocket *)sock { NSLog(@"onSocketDidDisconnect"); } - (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port { NSLog(@"didConnectToHost"); //这是异步返回的连接成功, [sock readDataWithTimeout:-1 tag:0]; } - (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag { NSString *msg = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; if(msg) { //处理受到的数据 } else { NSLog(@"Error converting received data into UTF-8 String"); } [sock readDataWithTimeout:-1 tag:0]; } - (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag { NSLog(@"didWriteDataWithTag:%d",tag); } @end