
TCP、IP/网络编码
文章平均质量分 76
hherima
移动互联网,大有可为!APP开发经历:飞信、和4G、搜狐视频、56视频等项目。
展开
-
cpu 的大端,小端,Big_endian,little_endian
详解大端模式和小端模式一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,转载 2013-03-05 20:18:44 · 2356 阅读 · 0 评论 -
iOS识别http是否使用了代理(proxy)
有些APP已经能精确识别:当前WiFi连接失败,是不是由于http代理引起的,已便得到更准确的用户提示,比如:原创 2017-01-18 16:22:04 · 9620 阅读 · 1 评论 -
字符编码的奥秘utf-8, Unicode
Unicode(统一码,万国码)是基于通用字符集(Universal Character Set)的标准发展。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足语言、跨平台进行文本转换、处理的要求。 Unicode是1988年由Apple和Xerox共同建立的一项标准。1991年,成立专门的协会来开发和推动Unicdoe。 Unicode用数字0到0X10FFFF来映射这些数字,最多容纳1114112个字符。1114112是怎么计算出来的?将0X10FFFF分成0原创 2013-03-10 05:52:24 · 11855 阅读 · 3 评论 -
base64加密,解密,encode,decode,编码详解+实现
以下部分内容摘自wiki百科:http://zh.wikipedia.org/wiki/Base64概述 Base64是一种基于64(A-Z、a-z、数字0-9 ,‘+’,‘/’)个可打印字符,来表示二进制数据的表示方法,基本思想是把所有字符都转化到这64个打印字符,方便流通。 由于2的6次方等于64,所以每6个位元为一个单元,对应某个可打印字符原创 2013-03-25 17:48:56 · 12699 阅读 · 3 评论 -
iPhone emoji问题牵出的Unicode代理区的思考
emoji 没什么特别的,也是正常的Unicode编码,只是通过代理区实现 这里说的utf-8和utf-16,其实本质上是一样的。只是utf-8是一个直接的映射。而utf-16需要根据代理区的(前导代理,后尾代理)来映射。utf-16比utf-8多了一步而已!话又说回来:如果不是代理区域的出现,就emoji 微笑的unicode: 0X1-F603来说。计算机甚至不知道这是一个字符,还是两个字符!所以,搞了一个Unicode:D83D-DE03来表示unicode: 0X1-F603,防止计算机解码混原创 2014-08-31 18:51:00 · 14310 阅读 · 4 评论 -
记事本输入“联通”俩字,关闭再打开乱码
这是个很有意思的事情。这里需要提一下ANSI,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。然后,这些编码方式没有固定的格式,但是比如说UTF-8的格式是非常明显的,比如最高位是0,110,1110等等。“联”ANSI编码是 0xC1AA 二进制排列是 1100 0001 1010 1010;“通”ANSI编码是 0xCDA8 二进制排列是 1100 1101 1010 1000;原创 2014-09-25 11:48:38 · 12981 阅读 · 2 评论 -
Unicdoe【真正的完整码表】对照表(二)汉字Unicode表
注意:下面这两段是代理区。即第1——16平面的间接表示,四个字节的汉字就在这里表示D800-DBFF:High-half zone of UTF-16 DC00-DFFF:Low-half zone of UTF-16 本篇中包含了所有常用汉字27973个,剩余汉字使用代理区标识欢迎查看字符编码相关博客专栏比如:由iPhone emoji问题牵出的UTF-16编码,UTF-8编码探究原创 2013-06-07 11:20:23 · 1952346 阅读 · 17 评论 -
iOS设置自定义UA [NSUserDefaults standardUserDefaults] registerDefaults:@{ @"UserAgent":
有些时候,考虑到兼容性,只对某些webview 实施自定义UA。那么,上面的办法显然不行了。+ (void)initialize在类创建的时候,只执行了一次。也就是所有的webview都带有自定义UA。那么,针对某一个webview实施自定义UA可以这么弄。这几个方法一定要是静态方法,要不然设置UA不生效。原创 2016-01-28 11:26:30 · 7717 阅读 · 2 评论 -
使用CFStringTransform将汉字转成拼音,非常耗时!
最近做一个通讯录项目,需要将联系人读入app内存(通讯录有400人左右),并依照首字母排序。这里使用了在将汉字转化成拼音的时候,iOS系统自带接口:注意self.latinString需要是一个mutable的string原创 2014-10-17 16:27:30 · 4188 阅读 · 1 评论 -
iOS 忽略SIGPIPE的问题
写网络程序时候, 当向对方write数据的时候, 如果连接断开(如对方主动close了连接), 会产生SIGPIPE信号, 还比如:往前调手机时间,启动APP联网立即崩溃,如果不对这个信号处理程序就会退出或者也可以说崩掉了, 所以一般简单处理就是忽略掉这个信号,signal(SIGPIPE, SIG_IGN);但是遇到一个诡异的问题, 用Xcode debug设备做并发测试的时候程序就会崩溃,转载 2016-01-21 18:45:09 · 2150 阅读 · 0 评论 -
URL参数基础知识
URL参数URL 参数是追加到 URL 上的一个名称/值对。参数以问号 (?) 开始并采用 name=value 的格式。如果存在多个 URL 参数,则参数之间用一个 (&) 符隔开。下面的示例显示带有两个名称/值对的 URL 参数:原创 2015-07-14 16:29:40 · 35736 阅读 · 0 评论 -
http状态码204理解
HTTP的状态码有很多种,主要有1xx(临时响应)、2xx(成功)、3xx(已重定向)、4xx(请求错误)以及5xx(服务器错误)五个大类,每个大类还对应一些具体的分类。平时我们接触比较多的是200、400、500等。这里我们主要讨论一下状态码204,在HTTP RFC 2616中关于204的描述如下:If the client is a user agent, it SHOU转载 2015-04-23 09:35:18 · 85612 阅读 · 0 评论 -
TCP网络传输“粘包”问题,经典解决(附代码)
关于TCP网络传输粘包,网上很多人写了原理。总结起来就一句话(这里拿Server和Client长连接,Server和Client之间通过信令传输做说明)Server发送的时候按照一条条信令发送,到达操作系统网络层,首先进入缓冲池,然后TCP协议层从池子中获取数据,传输给Client。我们知道TCP的传输有几个方案,比如,滑动窗口、1比特方案。所以Client收到的数据已经不可能是一个个完整的信令的。 个人理解TCP粘包的概念:它描述了一个场景:“信令是一个个紧挨着的,好像是被粘在一起了”。原创 2015-01-20 17:41:49 · 9346 阅读 · 2 评论 -
关于Content-Type的全部类型
Description of Data ContentTypical Filename Extensions MIME type/subtype Text and Text-Related Types HTML text data (RFC 1866)转载 2015-03-13 16:48:13 · 5871 阅读 · 0 评论 -
什么是socket?socket就是逻辑上的通信终端。
一下文章摘自:nokia 开发者论坛 http://www.developer.nokia.com/Community/Wiki/使用Socket_API感觉说的言简意赅,所以转载!● 什么是socket? 那么什么是socket呢? 用一句引自伯克利(Berkeley)UNIX关于socket实现的经典定义来回答就是“socket就是通信终端”。● 那究竟是原创 2013-07-08 10:53:54 · 2223 阅读 · 0 评论 -
TCP 滑动窗口协议/1比特滑动窗口协议/后退n协议/选择重传协议
本文转自 http://www.cnblogs.com/ulihj/archive/2011/01/06/1927613.html滑动窗口协议 一图胜千言,看下面的图,简单解释下: 发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面图中的4,5转载 2014-01-05 23:31:59 · 6677 阅读 · 2 评论 -
linux socket 错误码
errno.00 is: Successerrno.01 is: Operation not permittederrno.02 is: No such file or directoryerrno.03 is: No such processerrno.04 is: Interrupted system callerrno.05 is: Input/output error转载 2014-03-24 15:05:16 · 6243 阅读 · 0 评论 -
网络传输文本,urlEncode和urldecode的iOS实现。
-------------------------------------------欢迎查看字符编码【专栏】------------------------------------------汉字编码之GBK编码【点击】 判断汉字正则表达式更严谨方法【点击】记事本输入“联通”俩字,关闭再打开乱码 【点击...原创 2013-03-04 20:59:40 · 7529 阅读 · 2 评论