iphone socket编程之AsyncSocket使用说明
来源:互联网 发布:淘宝热卖棉服 编辑:程序博客网 时间:2024/06/05 05:48
初次接触socket编程,还记得大学的时候对socket编程不屑一顾,同学做了个模拟qq的程序也不感兴趣。现在做移动开发,才发现socket或者http编程是多么的重要。如果你的程序要读取网络数据无非就是通过http或者socket。小型低效率程序可能可以通过http实现,http就是get/post也比较简单,大型程序或者要求效率的非socket莫属了。
现在在做iphone程序开发,于是研究了一下iphone下面的socket编程,谷歌百度一番之后发现某人贡献的开源socket框架AsyncSocket功能相当的强大,使用相当的简单。
首先到https://github.com/robbiehanson/CocoaAsyncSocket下载它,然后导入RunLoop目录里面的AsyncSocket.h和AsyncSocket.m文件,如果需要udp就把AsyncUdpSocket.h和AsyncUdpSocket.m也一起导入到项目里面去,最后添加framework:CFNetwork.framework,在程序中导入#import "AsyncSocket.h",准备工作就做完了。
asyncSocket=[[AsyncSocket alloc]initWithDelegate:self];
[asyncSocket setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]];
后面那一句不能掉,原因不清楚,貌似是神马RunLoop相关的,我现在也不懂,以后懂了再来补充⋯⋯。
- (BOOL)acceptOnPort:(UInt16)port error:(NSError **)errPtr
//开启监听
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port{
[sock readDataWithTimeout:-1 tag:0];
}
//连接成功,打开监听数据读取,如果不监听那么无法读取数据
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
// NSData *strData = [data subdataWithRange:NSMakeRange(0, [data length] - 2)];
NSString *msg = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(msg);
// [sock readDataToData:[AsyncSocket CRLFData] withTimeout:-1 tag:0];
[sock readDataWithTimeout:-1 tag:0];
}
//读取数据了,继续监听读取,注释的第2行可以替代最后一行,但是输出的数据最后也要追加"\r\n",这个iphone里面不用考虑。
主要就是这些。如果客户端断开了,服务器会主动调用委托事件。但是客户端不会主动调用,不知为何。
同样这篇文章也只提到了最关键的一些地方。具体怎么用AsyncSocket还得自己去体会。
- iphone socket编程之AsyncSocket使用说明
- iphone socket编程之AsyncSocket使用说明
- iPhone开发Socket编程使用开源代码之AsyncSocket
- iPhone开发Socket编程使用开源代码之AsyncSocket
- iPhone开发之网络编程 AsyncSocket
- iPhone开发之网络编程 AsyncSocket
- iPhone开发之网络编程 AsyncSocket
- iPhone开发之网络编程 AsyncSocket
- iPhone开发之网络编程 AsyncSocket
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- iphone使用开源代码Asyncsocket进行socket编程
- mysql 事务处理,事务操作,JDBC中事务的使用,事务的sql语句,
- IOS+openCV在Xcode的入门开发
- Android进阶之Property Animator研究
- swift2.0 学习笔记Three
- 【ZOJ3940 The 13th Zhejiang Provincial Collegiate Programming ContestE】【脑洞 STL-MAP 复杂度分析 区间运算思想 双指针】M
- iphone socket编程之AsyncSocket使用说明
- 【移动端】基于rem实现手机端页面自适应--动态改变dpr和font-size
- Max Script|多边形的控制
- 编辑器之神-VIM
- 基于OpenCV的图像去雾程序
- 修改输入框placeholder的样式
- redis 性能优化
- 【ZOJ3941 The 13th Zhejiang Provincial Collegiate Programming ContestF】【贪心 暴力】Kpop Music Party n段part
- 解决Android TextView默认的padding问题