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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
在Python的Django框架上部署ORM库的教程
Apr 20 Python
python素数筛选法浅析
Mar 19 Python
Python中最大递归深度值的探讨
Mar 05 Python
基于Pytorch SSD模型分析
Feb 18 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
python dict乱码如何解决
Jun 07 Python
python中tab键是什么意思
Jun 18 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
用python修改excel表某一列内容的操作方法
Jun 11 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动态输出JavaScript代码实例
2015/02/12 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
jquery cookie插件代码类
2009/05/26 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
移动端界面的适配
2017/01/11 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
大学毕业生简单自荐信
2013/11/05 职场文书
晚宴邀请函范文
2014/01/15 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
党员三严三实心得体会
2014/10/13 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
2015年纪委工作总结
2015/05/13 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
六五普法心得体会2016
2016/01/21 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL