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

你可能感兴趣的:(udp,socket通信,python,python,socket通信)