多线程版聊天 | 手把手教你入门Python之一百-阿里云开发者社区

开发者社区> Python学习站> 正文

多线程版聊天 | 手把手教你入门Python之一百

简介: 通过实现多线程聊天窗口的实现来更深刻理解多线程。

上一篇:多线程实现多任务 | 手把手教你入门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()

配套视频

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
Python学习站
使用钉钉扫一扫加入圈子
+ 订阅

Python学习资料大全,包含Python编程学习、实战案例分享、开发者必知词条等内容。

官方博客
官网链接