首页 > 移动平台 > 详细

IOS-Socket

时间:2016-03-11 16:47:49      阅读:132      评论:0      收藏:0      [点我收藏+]

 

一、网络编程

网络模型
OSI(开放系统互联Open System Interconnection)TCP/IP参考模型
 
网络通讯要素
IP地址
端口号
传输协议
 
二、网络通讯要素
IP地址(唯一标示网络设备的):
网络中设备的标示
不易记忆,可以用主机名
本地回环地址:127.0.0.1 主机名:localhost
端口号(定位程序)
用于标示进程的逻辑地址,不同进程的标示
有效端口:0~65535,其中0~1024由系统使用或者保留端口,开发中不要使用1024以下的端口
传输协议(用什么样的方式进行交互)
通讯的规则
常见协议:TCP、UDP
 
URL(统一资源定位) http://ip:80/文件路径
 
三、TCP & UDP
TCP(传输控制协议)
建立连接,形成传输数据的通道
在连接中进行大数据传输(数据大小不收限制)
通过三次握手完成连接,是可靠协议,安全送达
必须建立连接,效率会稍低

 

UDP(用户数据报协议)
将数据及源和目的封装成数据包中,不需要建立连接
每个数据报的大小限制在64K之内
因为无需连接,因此是不可靠协议
n不需要建立连接,速度快
 
四、Socket(套接字)
Socket就是为网络服务提供的一种机制
通信的两端都是Socket
网络通信其实就是Socket间的通信
数据在两个Socket间通过IO传输
 
五、Socket 通讯流程图
技术分享
 
六、使用Socket开发网络通讯
在Web服务(WebServices=>XML)大行其道的今天,调用Web服务的代价是高昂的,尤其是仅仅是抓取少量数据的时候尤其如此。而使用Socket,可以只传送数据本身而不用进行XML封装,大大降低数据传输的开销(JSON)
 
Socket允许使用长连接,允许应用程序运行在异步模式(提高效率),只有在需要的时候才接收数据
 
七、iOS中常用的两种Socket类型
流式Socket(SOCK_STREAM):流式是一种面向连接的Socket,针对于面向连接的TCP服务应用
数据报式Socket(SOCK_DGRAM):数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用
 
八、在iOS中流式Socket连接的方法
在iOS中以NSStream(流)来发送和接收数据
可以设置流的代理,对流状态的变化做出相应
连接建立
接收到数据
连接关闭
 
1.NSStream:数据流的父类,用于定义抽象特性,例如:打开、关闭代理,NSStream继承自CFStream(Core Foundation)
2.NSInputStream:NSStream的子类,用于读取输入
3.NSOutputStream:NSSTream的子类,用于写输出
 
九、开发步骤
1.网络连接设置
   1>设置网络连接,绑定到主机和端口
   2>设置输入流和输出流的代理,监听数据流的状态
   3>将输入输出流添加至运行循环
   4>打开输入流和输出流
2.发送消息给服务器
3.有可读取字节时,读取服务器返回的内容
4.到达流末尾时,关闭流,同时并从主运行循环中删除
 
 
 
 

IOS-Socket

原文:http://www.cnblogs.com/oc-bowen/p/5266277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!