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实现简单的TCP代理服务器
Oct 08 Python
总结Python中逻辑运算符的使用
May 13 Python
python中sys.argv参数用法实例分析
May 20 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
Python数据类型之Tuple元组实例详解
May 08 Python
Python实现名片管理系统
Feb 14 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 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根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
js动态引入的四种方法
2018/05/05 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python实现大文本文件分割
2019/07/22 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
MADE法国:提供原创设计师家具
2018/09/18 全球购物
化学教师自荐信范文
2013/12/28 职场文书
团队经理竞聘书
2014/03/31 职场文书
技能比武方案
2014/05/21 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
2015年调度员工作总结
2015/04/30 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
网吧员工管理制度
2015/08/05 职场文书