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中Collections模块的Counter容器类使用教程
May 31 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
使用numpy和PIL进行简单的图像处理方法
Jul 02 Python
python RabbitMQ 使用详细介绍(小结)
Nov 08 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
python write无法写入文件的解决方法
Jan 23 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
Python tkinter之Bind(绑定事件)的使用示例
Feb 05 Python
一劳永逸彻底解决pip install慢的办法
May 24 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 google或baidu分页代码
2009/11/26 PHP
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python的requests网络编程包使用教程
2016/07/11 Python
python多进程重复加载的解决方式
2019/12/13 Python
python sorted函数原理解析及练习
2020/02/10 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
《小池塘》教学反思
2014/02/28 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书