上一篇:多线程实现多任务 | 手把手教你入门Python之九十九
下一篇:线程安全 | 手把手教你入门Python之一百零一
本文来自于千锋教育在阿里云开发者社区学习中心上线课程《Python入门2020最新大课》,主讲人姜伟。
多线程版聊天
实现一台电脑上聊天。
import socket, sys
import threading
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('192.168.31.199', 8080))
def send_msg():
while True:
msg = input('请输入您要发送的内容:')
s.sendto(msg.encode('utf8'), ('192.168.31.199', 9090))
if msg == 'exit':
break
def recv_msg():
while True:
# data的数据类型是一个元组
# 元组里第0个元素是接收到的数据
# 元组里第1个元素是发送方的ip地址和端口号
data, addr = s.recvfrom(1024)
print('接收到了{}地址{}端口的消息:{}'.format(addr[0], addr[1], data.decode('utf8')),
file=open('消息记录.txt', 'a', encoding='utf8'))
t1 = threading.Thread(target=send_msg)
t2 = threading.Thread(target=recv_msg)
t1.start()
t2.start()