开发中的生活iOS 开发 iOS Developer

网络知识点总结

2016-06-03  本文已影响98人  没有名字就是我的名字

IP地址

凡是连接了互联网的主机都有一个IP地址;
如果该主机借用了路由器的网络,那么这个主机只有局域网内的IP;

端口号

URL(统一资源定位符)

组成结构分析

B/S和C/S

Unicode和UTF8编码的关系

字符集是一种与存储无关的表,只有编码才是真正可传输可存储的格式。

GB2312和Unicode的优缺点

TCP/IP网络模型的四层

UDP与TCP的优缺点

TCP:

UDP:

WebView的使用方法

加载HTML格式的字符串

Socket通信过程

1. 创建socket

参数说明:
  1. 常用AF_INET(ipv4+端口号)(将来苹果要强烈要求使用ipv6)
  2. TCP用SOCK_STREAM(流式),UDP用SOCK_DGRAM(数据报式)
  3. TCP用IPPROTO_TCP,UDP用IPPROTO_UDP。可以直接写0,这样会根据前两个形参自动选择
返回值:

socket描述符。每个进程(一般的程序只有一个进程)中都有一个 socket描述符表,通过socket描述符就可以在操作系统的内核缓存中找到相应的socket。
返回-1为失败

方法名:

socket(int, int, int)

2. 发起connect

参数:
  1. socket描述符
  2. struct sockaddr_in结构体,里面保存了五个变量,其中最重要的有3个
  1. 结构体的大小,sizeof();
返回值:

返回0为成功,其它为失败

方法名:

connect(int, const struct sockaddr *, socklen_t)

3. send数据:

参数:

  1. socket描述符
  2. char *要发送的字符串
  3. 字符串长度,strlen()
  4. 与阻塞有关,可选项非常的多,一般置0
返回值:

-1失败,大于0是发送的字节数

函数:

send(int, const void *, size_t, int)

4. recv数据

参数:
  1. socket描述符
  2. uint8_t类型的数组
  3. 字符串长度,strlen()
  4. 与阻塞有关,可选项非常的多,一般填写0
返回值:

-1失败,大于0则是接收的字节数

方法名:

recv(int, void *, size_t, int)

5. close连接:

参数:

  1. socket描述符
方法名:

close(int)

请求的格式:(一行二头三体)

请求行:请求方法``空格``路径``协议和版本号``\r\n
请求头:头字段名``:``空格``头字段值``\r\n
结束符:\r\n
请求体:默认的GET请求没有请求头

比较常用几个请求头

数据解析

序列化和反序列化

在向服务器发送数据之前,将 NSArray / NSDictionary 转换成二进制的过程

从服务器获取数据之后,将二进制数据转化为NSArray / NSDictionary的过程

上一篇下一篇

猜你喜欢

热点阅读