• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 基于进程内通讯的python聊天室实现方法

基于进程内通讯的python聊天室实现方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python 多进程,python 进程,python 进程池,python 守护进程,python监控进程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了基于进程内通讯的python聊天室实现方法。分享给大家供大家参考。具体如下:

#!/usr/bin/env python
# Added by <ctang@redhat.com>
import sys
import os
from multiprocessing import connection
ADDR = ('', 9997)
AUTH_KEY = '12345'
class Server(object):
  def __init__(self, username):
    self.auth_key = AUTH_KEY
    self.addr = ADDR
    self.username = username
    self.listener = connection.Listener(self.addr, authkey=self.auth_key)
  def listen(self):
    while True:
      conn = self.listener.accept()
      while True:
        try:
          request = conn.recv()
          response = self.response(request)
          conn.send(response)
        except EOFError:
          break
      conn.close()
  def reply(self):
    message = raw_input("%s: " % self.username)
    return message
  def output_request(self, request):
    sys.stdout.write('%s says: %s\n' % request)
  def response(self, request):
    self.output_request(request)
    response = (self.username, self.reply())
    return response
class Client(object):
  def __init__(self, username):
    self.auth_key = AUTH_KEY
    self.addr = ADDR
    self.username = username
    self.display_name = self.make_display_name(username)
  def make_display_name(self, username):
    return "%s: " % username
  def connect(self):
    self.conn = connection.Client(self.addr, authkey=self.auth_key)
    while True:
      message = raw_input(self.display_name)
      self.send(message)
      response = self.conn.recv()
      self.output_response(response) 
  def send(self, message):
    self.conn.send((self.username, message))
  def output_response(self, response):
    sys.stdout.write('%s says: %s\n' % response)
def main():
  mode = sys.argv[1]
  if mode == 'server':
    username = raw_input("Your name please: ")
    server = Server(username)
    server.listen()
  elif mode == 'client':
    username = raw_input("Your name please: ")
    client = Client(username)
    client.connect()
if __name__ == '__main__':
  main()

</div>

希望本文所述对大家的Python程序设计有所帮助。

</div>

您可能想查找下面的文章:

  • Python守护进程和脚本单例运行详解
  • Python守护进程和脚本单例运行详解
  • 简单谈谈python中的多进程
  • Python控制多进程与多线程并发数总结
  • Python自定义进程池实例分析【生产者、消费者模型问题】
  • 深入理解python多进程编程
  • Python多进程同步简单实现代码
  • Python多进程同步简单实现代码
  • python多进程共享变量
  • Python语言实现获取主机名根据端口杀死进程

相关文章

  • Python编程之多态用法实例详解
  • python采用requests库模拟登录和抓取数据的简单示例
  • python 生成目录树及显示文件大小的代码
  • python动态文本进度条的实例代码
  • 整理Python最基本的操作字典的方法
  • python远程登录代码
  • python使用urllib2提交http post请求的方法
  • Python检测字符串中是否包含某字符集合中的字符
  • Python3实现从指定路径查找文件的方法
  • 简单介绍Python下自己编写web框架的一些要点

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python实现博客文章爬虫示例
    • python time模块用法实例详解
    • 利用PyInstaller将python程序.py转为.exe的方法详解
    • Python批量修改文本文件内容的方法
    • Python下Fabric的简单部署方法
    • 轻松实现python搭建微信公众平台
    • python在多玩图片上下载妹子图的实现代码
    • Python Web开发模板引擎优缺点总结
    • Python中设置变量访问权限的方法
    • python 遍历字符串(含汉字)实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有