编写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: break
print(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,分别运行。