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实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
python中的变量如何开辟内存
Jun 26 Python
对python的输出和输出格式详解
Dec 08 Python
python面试题小结附答案实例代码
Apr 11 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
python 字典操作提取key,value的方法
Jun 26 Python
python 轮询执行某函数的2种方式
May 03 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 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实现图片等比例缩放代码
2015/07/23 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python编程嵌套函数实例代码
2018/02/11 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
实习生个人的自我评价
2013/12/08 职场文书
求职自荐信
2013/12/14 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
举起手来观后感
2015/06/09 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
大学生党课感想
2015/08/11 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers