编写myqq即时聊天脚本,实现相互通信
主要涉及socket通信,udp协议
#Client
from socket import *#本地服务器地址,本机服务器,服务器端和客户端在同一个电脑上运行的时候,使用127.0.0.1
host = '127.0.0.1'#客户端端口(确保和服务器的端口一致)
port = 12345
#缓存大小
bufsiz = 2048
#地址+端口
addc = (host, port)
#创建UDP的套接字类型。
udpclisock = socket(AF_INET, SOCK_DGRAM)
while True:
#输入数据
msg = input('>')udpclisock.sendto(msg.encode('utf-8'), addc)
# 第一个元素 connection 是新的 socket 对象,服务器必须通过它与客户通信;# 第二个元素 address 是客户的 Internet 地址。
data, adds = udpclisock.recvfrom(bufsiz)
if not data: breakprint(data.decode('utf-8'))
udpclisock.close()
#Server
from socket import *
#1.创建UDP的套接字类型。
#AF_INET代表ip协议,SOCK_DGRAM代表udp协议
udpsersock = socket(AF_INET, SOCK_DGRAM)
#2.绑定到地址和端口
udpsersock.bind(('127.0.0.1',12345))
while True:
#用recvfrom函数来接收信息
data, addc = udpsersock.recvfrom(1024)
if not data:break
print(, data.decode('utf-8'))#输入数据
msg = input('>')
udpsersock.sendto(msg.encode('utf-8'), addc)
udpsersock.close()
注意:在同一个电脑上运行是,要打开两个IDLE,分别运行。