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之??碌某?? target=
Sep 12 Python
python利用datetime模块计算时间差
Aug 04 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
python八大排序算法速度实例对比
Dec 06 Python
Python构建网页爬虫原理分析
Dec 19 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
Python读写文件基础知识点
Jun 10 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
Django 项目布局方法(值得推荐)
Mar 22 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中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
ktv收银员岗位职责
2013/12/16 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
汽车专业求职信
2014/06/05 职场文书
2014年仓库工作总结
2014/11/20 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
运动会加油稿30字
2015/07/21 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
领导新年致辞2016
2015/07/29 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang