python3实现多线程聊天室


Posted in Python onDecember 12, 2018

使用python3创建多线程聊天室,供大家参考,具体内容如下

import threading 
import socket
 
#socket
udpSocket = None
#计数器
num = 1
 
#1.创建接受,发送方法
def inMessage():
  global num
  while True:
    #等待接收消息
    data = udpSocket.recvfrom(1024)
    #4. 将接收到的数据再发送给对方
    udpSocket.sendto(data[0], data[1])
    #打印获得的消息
    print("\r>> 消息%d => 来自:%s => %s"%(num,data[1],data[0].decode('gb2312')))
    print('\r>>',end='')
    #消息数量+1
    num+=1
 
def outMessage():
  while True:
    #发送地址
    sendAddr = ('192.168.106.132',8080)
    #获得输入数据
    senddata = input('\r>>')
    #发送消息
    udpSocket.sendto(senddata.encode('gb2312'),sendAddr)
 
 
#2.使用多线程执行接收发送
def main():
  global udpSocket
  
  #创建socket
  udpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  #绑定端口
  udpSocket.bind(('',8686))
 
  #创建线程
  t1 = threading.Thread(target=inMessage)
  t2 = threading.Thread(target=outMessage)
 
  #启动线程
  t1.start()
  t2.start()
 
  #主线程堵塞
  t1.join()
  t2.join()
 
#3.主方法运行
if __name__ == "__main__":
  main()

效果图:

python3实现多线程聊天室

python3实现多线程聊天室

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
Python是编译运行的验证方法
Jan 30 Python
python实现挑选出来100以内的质数
Mar 24 Python
Python实现股市信息下载的方法
Jun 15 Python
python3.7.0的安装步骤
Aug 27 Python
解决python opencv无法显示图片的问题
Oct 28 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
python生成随机红包的实例写法
Sep 02 Python
python 3.7.4 安装 opencv的教程
Oct 10 Python
Python文件路径名的操作方法
Oct 30 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 #Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 #Python
python2.7实现邮件发送功能
Dec 12 #Python
对python csv模块配置分隔符和引用符详解
Dec 12 #Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 #Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 #Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 #Python
You might like
php中var_export与var_dump的区别分析
2010/08/21 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
php文件上传简单实现方法
2015/01/24 PHP
PHP异常处理Exception类
2015/12/11 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
jquery弹出框的用法示例(2)
2013/08/26 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
谈谈Python中的while循环语句
2019/03/10 Python
python内存管理机制原理详解
2019/08/12 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
办护照工作证明范本
2014/01/14 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
英文请假条
2014/04/11 职场文书
新人入职感言
2015/07/31 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
你知道Java Spring的两种事务吗
2022/03/16 Java/Android