Socket 套接字
- IP地址 定位网络主机
- 端口号 定位进程(定位程序)
- 有效端口号范围 0 ~ 65535, 0 ~ 1024 是系统用的
- 传输协议(用什么样的方式进行交互)
- TCP(传输控制协议): 建立连接,行程传输通道. 通过三次握手完成连接,可以传输大数据(无限制), 是可靠协议,安全送达. 必须建立连接, 效率稍低.
- HTTP: 既可以基于TCP 也可以基于UDP, 一般是基于TCP 每次发HTTP请求建立一次连接
- UDP(用户数据报协议): 将数据及源和目的封装成数据包中, 不需要建立连接. 传小数据(64K)以内, 不可靠协议, 速度快, 效率高.
Socket服务端
HTTP的通信:socket() -> bind(端口) -> listen(端口) -> accept() -> read(客户端发的数据) -> write(返回数据) ->close()断开连接
长连接和短连接
群聊
client1 把消息发给server. server再把消息转发给client2, client3.
XMPP(The Extensible Messaging and Presence Protocal)
- 可拓展的通信表示协议
比如HTTP发送分两部分 请求头和请求体. 是类似于key-value的方式.
而XMPP 则是xml的方式
<Login>
<userName>zhangsan</userName>
<password>123</password>
</Login>
- RFC官方文档3920 定义了登录,退出,获取好友,发送消息等XML数据传输协议
- C/S架构, 通过TCP/IP协议连接到服务器, 通过Socket建立连接, 传输XML流
- 一般使用OpenFire服务器
- 客户端使用XMPPFramework框架, 封装了XML操作.