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格式化压缩后的JS文件的方法
Mar 05 Python
在Python程序中进行文件读取和写入操作的教程
Apr 28 Python
python实现线程池的方法
Jun 30 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
python字典排序的方法
Oct 12 Python
python通过matplotlib生成复合饼图
Feb 06 Python
解决python 找不到module的问题
Feb 12 Python
python中return如何写
Jun 18 Python
Python合并pdf文件的工具
Jul 01 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 连接mssql数据库 初学php笔记
2010/03/01 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python爬取m3u8连接的视频
2018/02/28 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python collections模块的使用
2020/10/16 Python
python中if嵌套命令实例讲解
2021/02/25 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
数控专业自荐书范文
2014/03/16 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
电影开国大典观后感
2015/06/04 职场文书