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 相关文章推荐
python xml解析实例详解
Nov 14 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
Python 函数基础知识汇总
Mar 09 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
python列表使用实现名字管理系统
Jan 30 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
pandas分组聚合详解
Apr 10 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
Prototype Number对象 学习
2009/07/19 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
Javascript的并行运算实现代码
2010/11/19 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
python动态加载变量示例分享
2014/02/17 Python
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
Python导入oracle数据的方法
2015/07/10 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
python实现井字棋小游戏
2020/03/04 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
请假条格式范文
2014/04/10 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
董事长助理岗位职责
2015/02/11 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python