比较原声socket 、GCDAsyncSocket
原声socket
NSInputStream 输入流(OC)
NSOutputStream 输出流(OC)
1:通过c语言的输入输出流CFReadStreamRef/CFWirteStreamRef(输入/输出流),IP地址,端口号,连接服务器。
2:c语言输入输出流,强转oc输出输入流,
3:通过给oc输入输出流,添加代理、添加到主运行循环、开启。
4:监听连接状态,输入,输出流状态
---->创建连接

---->监听状态

---->写入数据

---->读取数据


=====================================================
1 通过socket对象 初始化对象 设置代理 添加到主队列
2 代理方法 监听连接/断开 到服务器 数据发送成功,有接收数据。
3 通过socket对象 write/read 实现读写功能。
ps:1 写入通过outputStream write发起的(发送字符的字节,长度)
2 接受通过inputStream read 发起的 (自定义缓存区,长度)
=================================================
1 写入 通过socket对象 write发起的(tag)
2 接受 通过socket对象 read发起的(tag)
---->建立连接

----->监听网络连接状态

---->写入数据

----->读取数据

小结:GCDAsyncSocket本质是封装了CFReadStreamRef/CFWirteStreamRef 输入 输出流 ^_^
比较原声socket 、GCDAsyncSocket的更多相关文章
- Socket&GCDAsyncSocket(异步Socket)
Socket ********************************************* 简单理解Socket 就是网络连接,可以实现两个点之间的数据通讯. •Socket允许使用长连 ...
- 关于ios原声嵌入web页面的问题
当在一个界面中既有原生又有web的时候,如果想让上下整体滑动的话,我们怎么确定web的高度呢,下面分享一下我的心得 首先在webView的代理方法中我们可以获取到加载完整个web页面的高度 - (vo ...
- 大D实例化model-->调用自定义类方法,大M调用原声model方法
class ContactsModel extends Model{ public function addxxx(){ } } $conmodel = D('contacts','Model'); ...
- 移动WEB模拟原声APP滑动删除
移动WEB模拟原声APP滑动删除 效果 代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- node.js 安装方法 以及 用原声搭建服务器
node.js 安装方法: 第一步: 64位的安装包网址: https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi 第二步: 进入命令提示框 输入 ...
- 拖拽碰撞--原声js(自身理解上新的方法)
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- js原声快速实现选项卡
var Rea = document.getElementById("rep"); var ReaAll = Rea.querySelectorAll("li" ...
- ios原声音频播放AVAudioSession 总结
//音频播放/*英译:record:录音 */ 1 导入头文件#import<AVFoundation/AVFoundation.h>//AVAudioSession是一个单例模式.在IO ...
- 原声JavaScript实现滚动条·改1
修正了获取元素相对视口左距离的逻辑问题(之前的函数实际获取的是相对于页面左距离).去除了调试时忘记删除的mouseleave事件.将创建滚动条的功能单独列为一个函数. 添加了鼠标点在滚动条什么位置,就 ...
随机推荐
- HDU 5071 Chat(2014鞍山赛区现场赛B题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5071 解题报告:一个管理聊天窗口的程序,一共有八种操作,然后要注意的就是Top操作只是把编号为u的窗口 ...
- .net获取周几(中文)
DateTime.Now.ToString("yyyy年MM月dd日 星期ddd hh时mm分ss秒", new System.Globalization.CultureInfo( ...
- [POJ1765]November Rain
[POJ1765]November Rain 试题描述 Contemporary buildings can have very complicated roofs. If we take a ver ...
- php批量下载文件
最近用codeigniter开发一个图片网站,发现单文件下载很容易实现,批量下载的话,就有点麻烦. 普通php下载比较简单,比如我封装的一个函数: function shao_download($fi ...
- Apple WatchKit 初探
首先新建一个普通project即可. 然后添加WatchKit, file->new->target 直接NEXT后就能见到APPLE WATCH的编辑界面了. 因为apple watch ...
- MyEclipse 优化
1.取消自动validation 有一堆,什么xml.jsp.jsf.js等等, 我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下! 取消方法: windows-->perfer ...
- .NET中六个重要的概念:栈、堆、值类型、引用类型、装箱和拆箱 (转)
作者: Edison Chou 来源: 博客园 发布时间: 2014-09-03 15:59 阅读: 318 次 推荐: 2 原文链接 [收藏] 原文作者:Shivprasad k ...
- jQuery Plugin Docs
遮罩:BlockUI 对话框:Dialog 输入框:Mask Plugin 下拉框: 1.自定义的实现思路:将下拉框的选项定义为全局变量(数组),在html中定义点击事件并将数组变量转给响应函数,每次 ...
- hosts 本机DNS域名解析
一. Hosts文件的位置很多用户都知道在Window系统中有个Hosts文件(没有后缀名),在Windows 98系统下该文件在Windows文件夹.在Windows 2000/XP系统中位于\%S ...
- IDEA 编译时报错 “未结束的字符串文字” “解析时已经达到文件结尾”
Information:Using javac 1.7.0_75 to compile java sourcesInformation:java: Errors occurred while comp ...