通信人家园

标题: 编写myqq即时聊天脚本,实现相互通信(UDP)  [查看完整版帖子] [打印本页]

时间:  2021-2-17 22:13
作者: lululul     标题: 编写myqq即时聊天脚本,实现相互通信(UDP)

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






通信人家园 (https://www.txrjy.com/) Powered by C114