蓝懿 iOS 技术交流和心得分享12.2
来源:互联网 发布:python 驼峰转 编辑:程序博客网 时间:2024/05/16 18:07
今天开始接触了网络:主要讲了Socket
软件的两种架构
CS:Client Server 客户端——服务器
BS:Browser Server 浏览器——服务器
长连接:保证数据实时(多人在线网游 即时通信类应用)Socket
短连接:请求响应式(应用类基本都属于短连接)HTTP
Socket:套接字 基于TCP/UDP协议的数据传输的方法集
TCP协议:基于连接的数据传输协议
UDP协议:非连接数据传输协议
如果ARC工程中用到mrc代码 加 -fno-objc-arc
如果MRC工程中用到arc代码 加 -fobjc-arc
Socket:要用到三方框架AsyncSocket
1、创建客户端:
#import "ViewController.h"
#import "AsyncSocket.h"
@interfaceViewController ()<</span>AsyncSocketDelegate>
@property (nonatomic, strong)AsyncSocket *clientSocket;
@end
@implementation ViewController
- (IBAction)clicked:(id)sender {
NSString *info = @"吵死了";
NSData *data = [info dataUsingEncoding:NSUTF8StringEncoding];
[self.clientSocketwriteData:data withTimeout:-1tag:0];
}
-(void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag{
NSLog(@"发送完成!");
}
- (void)viewDidLoad {
[superviewDidLoad];
//创建客户端socket
self.clientSocket = [[AsyncSocketalloc]initWithDelegate:self];
//建立链接
[self.clientSocketconnectToHost:@"对方的ip地址"onPort:8000error:nil];
}
2、创建服务器:
- (void)viewDidLoad {
[superviewDidLoad];
//创建一个服务器的socket对象
self.serverSocket = [[AsyncSocketalloc]initWithDelegate:self];
//监听端口
[self.serverSocketacceptOnPort:8000error:nil];
//接收到一个新的socket
-(void)onSocket:(AsyncSocket *)sock didAcceptNewSocket:(AsyncSocket *)newSocket{
//需要持有住newSocket 声明成属性 strong 内存计数就+1
self.myNewSocket = newSocket;
}
//已经连接到某个host(ip地址)
-(void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port{
NSLog(@"连接成功!");
self.host = host;
//调用读取数据的方法
[self.myNewSocketreadDataWithTimeout:-1tag:0];
}
//已经读取到数据
-(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
//把传输过来的二进制数据转成字符串
NSString *info = [[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"接收到:%@",info);
self.historyTV.text = [self.historyTV.text stringByAppendingFormat:@"\n %@说:%@",self.host,info];
//调用读取数据的方法
[self.myNewSocketreadDataWithTimeout:-1tag:0];
}
//已经断开
-(void)onSocketDidDisconnect:(AsyncSocket *)sock{
}
学习ios 重要还是要理清楚思路 在做或者看老师代码的时候 自己多想想为什么 不要自己看着就抄 另外还是要推荐一下 蓝懿IOS这个培训机构 和刘国斌老师刘国斌老师还是很有名气的,听朋友说刘老师成立了蓝懿iOS,,老师讲课方式很独特,能够尽量让每个人都能弄明白,有的比较难懂的地方,如果有的地方还是不懂得话,老师会换个其它方法再讲解,这对于我们这些学习iOS的同学是非常好的,多种方式的讲解会理解得更全面,这个必须得给个赞,嘻嘻,还有就是这里的学习环境很好,很安静,可以很安心的学习,安静的环境是学习的基础,小班讲课,每个班20几个学生,学习氛围非常好,每天都学到9点多才离开教室,练习的时间很充裕,而且如果在练习的过程中有什么困难,随时可以向老师求助,不像其它机构,通过视频教学,有的甚至学完之后都看不到讲师本人,问点问题都不方便,这就是蓝懿与其它机构的区别,相信在刘国斌老师的细心指导下,每个蓝懿学员都能找到满意的工作,加油!
写博客第五十三天;
QQ:565803433
- 蓝懿 iOS 技术交流和心得分享12.2
- 蓝懿 iOS 技术交流和心得分享 11.19
- 蓝懿 iOS 技术交流和心得分享 11.21
- 蓝懿 iOS 技术交流和心得分享 11.23
- 蓝懿 iOS 技术交流和心得分享 11.25
- 蓝懿 iOS 技术交流和心得分享 11.26
- 蓝懿 iOS 技术交流和心得分享 11.27
- 蓝懿 iOS 技术交流和心得分享 11.28
- 蓝懿 ios技术交流和心得分享 11.29
- 蓝懿 ios技术交流和心得分享 11.30
- 蓝懿 iOS 技术交流和心得分享 12.1
- 蓝懿 iOS 技术交流和心得分享12.4
- 蓝懿 iOS 技术交流和心得分享 12.5
- 蓝懿iOS 技术交流和心得分享 12.8
- 蓝懿ios 技术交流和心得分享 12.9
- 蓝懿 iOS 技术交流和心得分享 12.11
- 蓝懿ios技术交流和心得分享12.14
- 蓝懿ios技术交流和心得分享12.15
- [Leetcode]Additive Number
- 子网和子网掩码分析
- Deep Learning + Opencv + 机器视觉
- 多态的理解(父类引用指向子类对象)
- javase-反射方法学习记录
- 蓝懿 iOS 技术交流和心得分享12.2
- 解释器模式(Interpreter Pattern)
- 单例模式--(懒汉式与饿汉式)
- [leetcode]Contains Duplicate II
- Servlet学习小结(上)
- java
- Codeforces_282A
- Android设置Settings实现:PreferenceActivity【1】
- Quartz Scheduler Product 定时器API