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实现的一个自动售饮料程序代码分享
Aug 25 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
Nov 06 Python
Python加pyGame实现的简单拼图游戏实例
May 15 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
python编程使用协程并发的优缺点
Sep 20 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
安装不同版本的tensorflow与models方法实现
Feb 20 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 checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
深入探究node之Transform
2017/07/20 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
详解如何运行vue项目
2019/04/15 Javascript
python二叉树的实现实例
2013/11/21 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
python中count函数简单的实例讲解
2020/02/06 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
python爬虫基础之urllib的使用
2020/12/31 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
为什么使用接口?
2014/08/13 面试题
酒店管理求职信
2014/06/09 职场文书
生日答谢词
2015/01/05 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js