最近闲暇无事,好多人问即时通讯怎么做的,尤其是对于当下大火的python更是如此,大多数人都知道一个xmpp或者xampp框架,于是开了简书,大致说明一下
不明白tcp/udp协议底层原理的,自行百度,这里就不再赘述。
在python中,要想实现即时通讯,需要明白socket协议的两个概念,socket.AF_INET和socket_STREAM,前者是通讯的IP协议模式,代表IPv4,IPv4跟IPv6的区别在于,IPv4是32位整数位经过8字节划分之后的取值,预想结果192.xx.xx.xx ,而IPv6是128位整数位划分之后的取值,预想结果xxxx.xxxx.xxxx.xxxx.xxxx.xxxx.xxxx.xxxx ,v4的长度是有限制的,20个字节,而v6理论上是没有限制的,这就是为什么大公司一般用v6而小公司用v4的原因。
后者socket_STREAM,见名知意,就是流的意思,这是一种服务端发送接收数据的数据形式,即字节(byte),在c/s交互的过程中,获取到数据的流,进行decode或者encode编码输出即可,编码格式大部分遵循utf-8,也有遵循gbk的,不再多说。
步骤:
1、创建客户端py文件,连接服务端IP地址即服务器地址,如连接成功,发送数据并进行对应编码;
2、创建服务端py文件,绑定域名,服务器挂起也就是等待连接,一旦接受到客户端发送的数据,服务器自动进行处理;
核心代码: