1.socket
网络上两个程序经过一个双向的通讯链接实现数据的交换
客户端发送网络请求给服务器
服务器返回数据给客户端
两端链接都是socket 通讯管道
通讯以前要先创建链接,也就是通讯管道,经过socket创建链接
2.网络通讯要素
网络请求 经过socket链接
ip找到主机
端口号是找到应用程序(进程,服务器应用程序)
传输协议(tcp udp) 创建链接的就是tcp,
tcp :创建链接,三次握手,数据不受限制,保证可靠协议,安全送达,因此效率会低一点
udp:不创建链接,所以不可靠,数据限制64k
3.实现Socket服务端监听 CocoaAsyncSocket(oc)第三框架 是对C语言的封装
4.转发消息服务
多个客户端链接到服务器
当一个客户端发送消息给服务端,服务端转发给其余客户端,好比QQ聊天(根据端口号来区别发送给那个QQ号)
至关于一个群聊的雏形
5.长链接和短链接
客户端请求数据服务端 创建链接以后,没有用,链接断开 ,减小cpu资源,短链接(http就是短链接)
实时链接。即时通信,由于随时可能发送消息给好友,因此要保持长链接
6.socket层的协议
数据传输协议,约束
(1)http协议
请求数据(请求头, 请求体)http传输请求格式
服务器解析数据(响应头,响应体)
(2)xmpp协议 即时通信协议 可扩展的
xml格式的协议 C/S架构 (客户端与服务端)经过tcp/ip链接到服务器,经过socket 创建链接 ,传输xml数据流
B/S (浏览器和服务器)
(3)自定义即时通信协议
json格式协议
7.环信使用的就是xmpp协议
环信在xmpp基础上进行改造,功能更完善,更强大,进行的二次开发,不用本身再建立服务器
8.传输协议 (tcp,udp)和 数据传输协议(http,xmpp)区别
写一封信给好友
tcp、udp至关于快递方式
http、xmpp 至关于信内容的格式(中文、英文)
9.即时通信(IM)
若是本身写的xmpp。服务器大部分都是openfire(软件,下载以后,本身电脑就是一个服务器)
使用框架 xmppFramework ,本身把数据写出来,这个框架能够封装成xml格式
json