CocoaAsyncSocket使用笔记
先去github的站点下载最新的包,然后先看看介绍。
写的比較具体了
https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Intro_GCDAsyncSocket
网上非常多都是老版本号的帖子。官方已经推出了GCDAsyncSocket来取代曾经老的AsyncSocket。
我的项目是no-ARC的,这个框架仅仅有arc的版本号。所以引入GCDAsyncSocket的.h和.m文件后。改动xcode中项目的属性。
1)targets中“build settings”中找到Compiler for c/c++/Objective-c的选项。
改为Apple LLVM compiler 3.0 仅仅要是3.0或以上就能够
2)在“build phases”中“compile sources”中找到GCDAsyncSocket.m,添加參数-fobj-arc
3)引入GCDAsyncSocket所须要的框架,CFNetwork和security这两个
这样就能够在我的no-arc的项目中来使用GCDAsyncSocket的库了。
以下是我写的连接echoServer的client
- (void) initNetwork{
socket= [[GCDAsyncSocketalloc] initWithDelegate:selfdelegateQueue:dispatch_get_main_queue()];
NSError*error = nil;
if(![socketconnectToHost:@"serverIP"onPort:serverport error:&error]) {
NSLog(@"is aready connected");
}
}
- (void) sendData{
NSLog(@"send Message to server");
NSData*datas = [@"client send msg"dataUsingEncoding:NSUTF8StringEncoding];
[socket writeData:datas withTimeout:-1 tag:1];//这里tag没用到
[socket readDataWithTimeout:-1 tag:1];//这句必须加。否则收不到server返回数据
}
- (void) socket:(GCDAsyncSocket*)sock didConnectToHost:(NSString*)host port:(uint16_t)port{
NSLog(@"connected to the server");
}
- (void) socket:(GCDAsyncSocket*)sock didReadData:(NSData*)data withTag:(long)tag{
NSString*msg = [[NSStringalloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"return message=%@",msg);
}
- (void) socketDidDisconnect:(GCDAsyncSocket*)sock withError:(NSError*)err{
NSLog(@"close connected");
}
最新文章
- [转]ORA-01034: ORACLE not available如何解决
- Greedy:The Water Bowls(POJ 3185)
- daterangepicker 双日历/格式化日期/日期限制minDate,maxDate
- 二模Day2题解
- 通过GeoIP2分析访问者IP获取地理位置信息
- 51单片机C语言学习笔记3: 存储器结构
- 在用TabbarController中出现navigationController 嵌套报错
- 框架基础:ajax设计方案(三)---集成ajax上传技术
- 在.NET Core中处理一个接口多个不同实现的依赖注入问题
- Java:日期类Date与Calendar
- POJ1017 Packets---贪心
- js数字串传参时变科学计数法
- LeetCode编程训练 - 位运算(Bit Manipulation)
- centos6.8 安装wget
- sscanf的字符串格式化用法
- 给iOS开发新手送点福利,简述UITableView的属性和用法
- 《JavaScript高级程序设计》5.5 Function类型
- 教你用Python解决非平衡数据问题(附代码)
- opencv产生随机的颜色
- JUC-Callable
热门文章
- Selenium - WebDriver: Waits
- Struts2请求流程
- IO Streams:来源于命令行的IO
- Android实现金额显示小数点后两位
- arcsde10.0 for oracle11g 分布式安装教程
- 一个 Java 的 Socket 服务器和客户端通信的例子
- BZOJ3166 [Heoi2013]Alo 【可持久化trie树 + 二分 + ST表】
- 如何通过IP地址分辨公网、私网、内网、外网
- ASP.NET的最新安全漏洞Important: ASP.NET Security Vulnerability
- 【转】SqlCacheDependency的使用 强大的功能