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封装对象实现时间效果
Apr 23 Python
python pickle 和 shelve模块的用法
Sep 16 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
python虚拟环境virtualenv的安装与使用
Sep 21 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
Django 删除upload_to文件的步骤
Mar 30 Python
Jupyter加载文件的实现方法
Apr 14 Python
Pytorch转tflite方式
May 25 Python
pycharm软件实现设置自动保存操作
Jun 08 Python
python如何删除列为空的行
Jul 17 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 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
是否存在第一台收音机的说法
2021/03/01 无线电
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
JS 实现导航栏悬停效果
2013/09/23 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python爬虫与反爬虫大战
2020/07/30 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
linux面试相关问题
2012/08/11 面试题
如何开发安全的AJAX应用
2014/03/26 面试题
美工的岗位职责
2013/11/14 职场文书
优秀应届毕业生自荐信
2013/11/16 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
励志演讲稿800字
2014/08/21 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
2015年司法局工作总结
2015/05/22 职场文书
2016年寒假见闻
2015/10/10 职场文书