Socket编程——第三方类库 AsyncSocket
来源:互联网 发布:剑灵龙男捏脸数据 编辑:程序博客网 时间:2024/06/09 21:56
在这里,是调用第三方的一个开源类库来实现Socket编程。网址为:http://code.google.com/p/cocoaasyncsocket/。
一,导入ASyncSocket库
将下载下来的文件中,Source文件夹里面的AsyncSocket.h、AsyncSocket.m、AsyncUdpSocket.h和AsyncUdpSocket.m四个文件复制到你的工程里面。然后工程中加入一个类库CFNetwork.framework,
二,客户端的程序
1,导入.h文件并定义AsyncSocket对象
#import "AsyncSocket.h"@property (nonatomic, retain) AsyncSocket *client;
2,在viewDidLoad中进行监听读取
[self connectServer:HOST_IP port:HOST_PORT];
3,链接服务器
- (int) connectServer: (NSString *) hostIP port:(int) hostPort{ if (client == nil) { client = [[AsyncSocket alloc]initWithDelegate:self]; NSError *err = nil; if (![client connectToHost:hostIP onPort:hostPort error:&err]) { NSLog(@"%ld %@", (long)[err code], [err localizedDescription]); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[@"Connection failed to host " stringByAppendingString:hostIP] message:[[[NSString alloc]initWithFormat:@"%ld",(long)[err code]] stringByAppendingString:[err localizedDescription]] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; return SRV_CONNECT_FAIL; } else { return SRV_CONNECT_SUC; } } else { [client readDataWithTimeout:-1 tag:0]; return SRV_CONNECTED; }}
4,连接成功和连接失败的函数
//连接成功后读取数据- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port{ [client readDataWithTimeout:-1 tag:0];}//连接失败则返回error- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err{ NSLog(@"Error");}- (void)onSocketDidDisconnect:(AsyncSocket *)sock{ NSString *msg = @"Sorry this connect is failure"; [AlertView showNotice:msg]; client = nil;}
5,读取数据
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{ _aStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"Hava received datas is :%@",_aStr); flag = 1; [client readDataWithTimeout:-1 tag:0];}
6,写数据
NSData *data0 = [@"1" dataUsingEncoding:NSUTF8StringEncoding]; [client writeData:data0 withTimeout:-1 tag:1];
0 0
- Socket编程——第三方类库 AsyncSocket
- Socket —>AsyncSocket(ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收)
- socket编程 - Asyncsocket
- socket编程 - Asyncsocket
- socket编程-AsyncSocket
- socket编程 - Asyncsocket
- socket编程 - Asyncsocket
- iOS Socket第三方开源类库 AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- socket第三方库 AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- iOS Socket第三方开源类库 ----AsyncSocket
- iOS Socket第三方开源类库 AsyncSocket
- hdoj 4494 Teamwork 【最小费用最大流】
- 从 xUtils 中发现的Android 6.0 版本更新问题
- 关于Android的EditText的部分属性
- 继承与多态(三):使用虚函数实现多态
- 【android_温故知新】第 3 组 UI 组件:ImageView 及其子类
- Socket编程——第三方类库 AsyncSocket
- 加密与解密(OD使用笔记&简单实践_①)
- 20个非常有用的Java程序片段
- nyoj 68三点顺序 【几何】
- IOS中Block小结
- Make系统变量
- 【STL】STL之顺序容器:vector、deque、list、forward_list、array、string
- Android数字游戏之数独(自动随机生成不同难度的数独)
- 加密与解密(OD使用笔记&简单实践_②)