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格式
相关文章: