Python Socket编程之多线程聊天室


Posted in Python onJuly 28, 2018

本文为大家分享了Python多线程聊天室,是一个Socket,两个线程,一个是服务器,一个是客户端。
最近公司培训,要写个大富翁的小程序,准备做个服务器版的,先练练手。

代码:

#coding = utf-8

import socket
import threading

class UdpServer(threading.Thread):
 def __init__(self):
  threading.Thread.__init__(self)
  self.address = ('127.0.0.1', 10000)
  self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  self.s.bind(self.address)
  self.stop_flag = False


 def recieve_msg(self):
  (data, addr) = self.s.recvfrom(2048)
  if data:
   print 'recieve data from', addr
   print data

 def run(self):
  while not self.stop_flag:
   self.recieve_msg()

 def stop(self):
  self.stop_flag = True

class UdpClient(threading.Thread):
 def __init__(self):
  threading.Thread.__init__(self)
  self.address = ('127.0.0.1', 10001)
  self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  self.stop_flag = False

 def send_msg(self):
  data = raw_input()
  if not data:
   print 'Wrong inpiut'
   return
  else:
   self.s.sendto(data, self.address)

 def run(self):
  while not True:
   self.send_msg()


 def stop(self):
  self.stop_flag = True


def main():
 t1 = UdpServer()
 t2 = UdpClient()
 t1.start()
 t2.start()



if __name__ == '__main__':
 main()

Python Socket编程之多线程聊天室

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现基于HTTP文件传输实例
Nov 08 Python
Python科学画图代码分享
Nov 29 Python
详解Python自建logging模块
Jan 29 Python
python3+PyQt5使用数据库表视图
Apr 24 Python
Python实现二维曲线拟合的方法
Dec 29 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
使用python绘制二维图形示例
Nov 22 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
Python中使用subprocess库创建附加进程
May 11 Python
python三子棋游戏
May 04 Python
python实现点对点聊天程序
Jul 28 #Python
基于python实现聊天室程序
Jul 27 #Python
Python中return self的用法详解
Jul 27 #Python
TensorFlow打印tensor值的实现方法
Jul 27 #Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 #Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 #Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 #Python
You might like
php处理斐波那契数列非递归方法
2012/02/04 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
vue组件之Alert的实现代码
2017/10/17 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
原生js实现分页效果
2020/09/23 Javascript
Python中的rjust()方法使用详解
2015/05/19 Python
django实现支付宝支付实例讲解
2019/10/17 Python
django实现用户注册实例讲解
2019/10/30 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
合同专员岗位职责
2013/12/18 职场文书
表彰大会策划方案
2014/05/13 职场文书
离婚协议书范本2014
2014/10/27 职场文书
施工员岗位职责
2015/02/10 职场文书
《观潮》教学反思
2016/02/17 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL
springboot实现string转json json里面带数组
2022/06/16 Java/Android