【读书笔记】iOS-苹果的网络
一,网络结构。
1,客户端服务器网络结构。
客户端服务器网络结构是一种主从网络结构。服务器是被动的,有点像餐厅的服务员。而客户端是主动的,像在餐厅吃饭的顾客。
2,对等网络结构。
对等网络也叫点对点网络。每个节点之间是对等的。
对等网络结构分布范围比较小。通常在一间办公室或一个家庭内,因此它非常适合iOS设备间的网络通信,网线路链路层是由蓝牙和WiFi实现。iOS SDK提供了这方面的API供开发者使用。
二,基于Socket的C/S结构网络通信。
1,Socket概念。
Socket是网络上的两个程序,通过一个双向的通信连接,实现数据的交换。这个双向链路的一端称为一个Socket.Socket通常用于实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程接口,一个Socket由一个IP地址和一个端口号唯一确定。
我们把Socket编程叫做“低层次网络编程”。
Socket采用TCP/IP协议模型。TCP/IP协议的传输层又有两种传输协议:TCP(传输控制协议)和UDP(用户数据协议).TCP是基于连接的,而UDP是无连接的;TCP对系统资源的要求较多,而UDP少。TCP保证数据正确性而UDP可能丢包;TCP保证数据顺序而UDP不保证。
2,Socket编程。
客户端流程是先指定要通信的服务器IP地址,端口和采用的传输协议(TCP或UDP),向服务器发出连接请求,服务器有应答请求之后,就会建立连接,之后与服务器端是一样的。
Socket编程是一种网络编程的标准,客户端和服务器端可以不受编程语言的限制,完全自由通信。客户端可以是Object-C编写的iOS程序,服务器端可以是Java编写的程序,通信双方定义好数据交互格式就可以了。
3,实例:NSStream&CFStream实现TCP Socket服务器端。
4,实例:NSStream&CFStream实现TCP Socket客户端。
三,Bonjour服务发现。
Socket有一个问题,需要指定服务器的端口和IP地址。在有些情况下,获得服务器的这些信息是很困难的。苹果公司开发了一种零配置发现协议,命名为Bonjour(法语“你好”),使我们的尖用不必指定服务器端口和IP地址就可以动态发现。
1,发布服务
2,解析服务
3,查找服务
4,实例:基于服务发现的Socket通信服务器端。
5,实例:基于服务发现的Socket 通信客户端。
四,对等网络结构。
对等网络结构是苹果公司的Ad Hoc网络的一种,在小空间里构建无限网络的解决方案。苹果公司在Game Kit框架中提供了开发这种网络的API。
1,使用Game Kit开发对等结构网络应用。
在iOS3之后,苹果公司提供了用于自己游戏中心开发的API,这就是Game Kit框架。在新发布的iOS6中,苹果公司地Game Kit进行了比较大的调整。借助于Game Kit中的对等网络,API不仅可以开发基于Ad Hoc的网络游戏,也可以在其他类型的应用中使用这些API。
基于蓝牙连接的对等网络在数据传输是,传输的距离有限制,另外Game Kit对于传输的数据量也有一定的限制,数据量最大不能超过87KB,处于性能的考虑传输数据不要超过1000字节,如果超过,分割成几个数据包传输。
2,实例:基于蓝牙对等网络通信。
参考资料:《iOS网络编程与云端应用-最佳实践》
【读书笔记】iOS-苹果的网络的更多相关文章
- 《图解HTTP》读书笔记(一:网络基础TCP/IP)
好书什么时候开始读都不晚.作为一个测试人员,是一定要掌握一些网络的基础知识的.希望能够边读书边在这里记录笔记,便于加深理解以及日后查阅. 一.TCP/IP协议族 计算机与网络设备要互相通信,双方必须基 ...
- 【读书笔记】iOS-访问网络
iOS平台是按照一直有网络连接的思路来设计的,开发者利用这一特点创造了很多优秀的第三方应用.大多数的iOS应用都需要联网,甚至有些应用严重依赖网络,没有网络就无法正常工作. "在访问网络失败 ...
- 【读书笔记】iOS-反溃网络信息改善用户体验
一,iOS6表视图刷新控件的使用. 二,使用等待指示器控件. 三,使用网络等待指示器. 四,使用MBProgressHUD等待指示器. 参考资料:<iOS网络编程与云端应用-最佳实践>
- 《python核心编程》读书笔记--第16章 网络编程
在进行网络编程之前,先对网络以及互联网协议做一个了解. 推荐阮一峰的博客:(感谢) http://www.ruanyifeng.com/blog/2012/05/internet_protocol_s ...
- 深入理解linux网络技术内幕读书笔记(九)--中断与网络驱动程序
Table of Contents 1 接收到帧时通知驱动程序 1.1 轮询 1.2 中断 2 中断处理程序 3 抢占功能 4 下半部函数 4.1 内核2.4版本以后的下半部函数: 引入软IRQ 5 ...
- OCA读书笔记(6) - 配置Oracle网络环境
6.Configuring the Oracle Network Environment su - grid装grid时自动创建了监听netca--创建新的监听 vi $ORACLE_HOME/net ...
- [读书笔记]iOS 7 UI设计 对比度
好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...
- 读书笔记--用Python写网络爬虫01--网络爬虫简介
Wiki - Web crawler 百度百科 - 网络爬虫 1.1 网络爬虫何时使用 用于快速自动地获取网络信息,避免重复性的手工操作. 1.2 网络爬虫是否合法 网络爬虫目前人处于早期的蛮荒阶段, ...
- 读书笔记--用Python写网络爬虫02--数据抓取
抓取(scraping)---爬虫从网页中抽取一些数据用以实现某些用途. 三种抽取网页数据的方法:正则表达式.Beautiful Soup和lxml. 2.1 分析网页 通过浏览器自带选项,查看网页源 ...
- 读书笔记-iOS核心动画高级技巧
如果不使用+imageNamed:,那么把整张图片绘制到CGContext可能是最佳的方式了. 这里我们利用了CALayer的KVC来存储和检索任意的值,将图层和索引打标签. 使用KVC打标签
随机推荐
- 百度Map与HT for Web结合的GIS网络拓扑应用
在<HT for Web整合OpenLayers实现GIS地图应用>篇中介绍了HT for Web与OpenLayers的整合,不少朋友反应国内用得比较多的还是百度地图,虽然HT整合百度地 ...
- 为html.EditorFor添加样式
有网友问及,怎样为html.EditorFor添加样式. 解决方法,可以参考下面语法: 先new一个htmlAttributes. @model Book @using Insus.NET.Model ...
- java for 的用法总结
J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象.本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类 ...
- 不可或缺 Windows Native (12) - C++: 引用类型
[源码下载] 不可或缺 Windows Native (12) - C++: 引用类型 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 引用类型 示例CppReferen ...
- Oracle的建立表格
找到table右键点击,选择新建: 输入名称,用拼音或者英文,中文容易出现错误.输入完名称选择列: 列也写好名称,类型可以选择,VARCHAR2()是字符串类型,括号里面写数字代表长度,英文字母和数字 ...
- 第 1 章 Bootstrap 介绍
学习要点:1.Bootstrap 概述2.Bootstrap 特点3.Bootstrap 结构4.创建第一个页面5.学习的各项准备 主讲教师:李炎恢 本节课我们主要了解一下 Boostrap 历史.特 ...
- 初学C++ 之 输入输出(IDE:vs2013)
#include <iostream> //引用头文件(输入输出) using namespace std; //引用命名空间,方便使用输入输出语句 class MathMethod { ...
- 引用计数 vs. GC
内存管理问题 内存管理是编程过程中的一个经典问题,早期在 C 语言时代,几乎都靠 malloc/free 手动管理内存.随着各个平台的发展,到现在被广泛采用的主要有两个方法: 引用计数 (ARC,Au ...
- Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...
- 大家一起撸代码之——Hibernate各种主键生成策略与配置详解
1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...