`
吕不为
  • 浏览: 67560 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用python twisted写服务器程序

阅读更多
今天要测试客户端软件,身边没有服务器端,没办法,写了一个服务器的小脚本,用来测试客户端的正确性,发现比用Python的Socket模块
还是方便了许多
.#coding:gb2312
"""The most basic chat protocol possible.

run me with twistd -y chatserver.py, and then connect with multiple
telnet clients to port 1025
"""

from twisted.protocols import basic



class MyChat(basic.LineReceiver):
    def connectionMade(self):
        self.Stat='AUTHA'
        print "Got new client!"
        self.message("""
欢迎登录\r""")
        self.factory.clients.append(self)

    def connectionLost(self, reason):
        print "Lost a client!"
        self.factory.clients.remove(self)

    def lineReceived(self, line):
        s=repr(line)
        print "received+["+s+"]STAT:"+ self.Stat
        if self.Stat=='AUTHA':
            print '操作员:'
            self.message('\n\r操作员:')
            self.Stat='AUTH'
        elif self.Stat=='AUTH':
            print '请输入口令:'
            self.message('\n\r请输入口令:')
            self.Stat='PASS'
        elif self.Stat=='PASS':
            print 'MML>'
            self.message('\n\rMML>')
            self.Stat='DATA'
        elif self.Stat=='DATA':
            if s=="'quit'":
                print 'Good bye!'
                self.loseConnection()
            else:
                self.message('\n\r指令执行成功\n\rMML>')

    def message(self, message):
        self.transport.write(message)


from twisted.internet import protocol
from twisted.application import service, internet

factory = protocol.ServerFactory()
factory.protocol = MyChat
factory.clients = []

application = service.Application("chatserver")
internet.TCPServer(2026, factory).setServiceParent(application)
分享到:
评论

相关推荐

    Python Twisted-22.10.0-py3-none-any

    Twisted是用Python实现的基于事件驱动的网络引擎框架。Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。Twisted的作者试图在当时现有的环境下...

    使用Python的Twisted框架实现一个简单的服务器

    这种灵活的代价是需要好通过好几个层次来实现你的服务器, 本文档描述的是Protocol层,你将在这个层次中执行协议的分析和处理,如果你正在执行一个应用程序,那么你应该在读过top level的为twisted写插件一节中的...

    Python下的twisted框架入门指引

    twisted是一个用python语言写的事件驱动的网络框架,他支持很多种协议,包括UDP,TCP,TLS和其他应用层协议,比如HTTP,SMTP,NNTM,IRC,XMPP/Jabber。 非常好的一点是twisted实现和很多应用层的协议,开发人员可以...

    使用Python的Twisted框架构建非阻塞下载程序的实例教程

    尽管Twisted大多数情况下用来写服务器代码,但为了一开始尽量从简单处着手,我们首先从简单的客户端讲起。 让我们来试试使用Twisted的客户端。源码在twisted-client-1/get-poetry.py。首先像前面一样要开启三个...

    Twisted-19.10.0-cp38-cp38.rar

    Twisted是用于Internet应用程序的基于事件的框架,支持Python 2.7和Python 3.5+。它包括用于许多不同目的的模块,其中包括: twisted.web:HTTP客户端和服务器,HTML模板和WSGI服务器 twisted.conch:SSHv2和...

    ldaptor:使用Twisted Python的LDAP服务器,客户端和实用程序

    还包括一组可从命令行使用的LDAP实用程序。 详细文档可以在上。 快速用法示例 from twisted . internet import reactor , defer from ldaptor . protocols . ldap import ldapclient , ldapsyntax , ldapconnector...

    twistedcat:twistedcat-用Python Twisted编写的类似于socat的实用程序!

    安装您可以像这样在您的python虚拟环境中安装twis​​tedcat: $ pip install git+https://github.com/david415/twistedcat.git用法命令行用法摘要: usage: nocat [-h] [-c CLIENT] [-s SERVER]twistedcat - proxy ...

    Twisted-17.1.0-cp36-cp36m-win_amd64.whl

    Twisted是用Python实现的基于事件驱动的网络引擎框架。Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。Twisted的作者试图在当时现有的环境下...

    Twisted-17.9.0-cp36-cp36m-win_amd64

    Twisted是用Python实现的基于事件驱动的网络引擎框架。Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。Twisted的作者试图在当时现有的环境下...

    Python 核心编程 第二版

    内容简介 本书是经典的Python指导书,在第一版的基础上进行了全面升级。全书分为两个部分:第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,... 23.3 用Jython写Python和Java的程序   23.4 练习

    Python核心编程第二版

     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...

    使用Python的Twisted框架编写简单的网络客户端

     和服务器一样,也是通过该类来实现。先看一个简短的例程: from twisted.internet.protocol import Protocol from sys import stdout class Echo(Protocol): def dataReceived(self, data): stdout.write(data...

    Python的Twisted框架上手前所必须了解的异步编程思想

    我已经用Twisted框架几年了,因此思考过我当初是怎么学习它(学得很慢)并发现学习它的最大难度并不在Twisted本身,而在于对其模型的理解,只有理解了这个模型,你才能更好去写和理解异步程序的代码。大部分Twisted的代

    python 编写的DHT Crawler 网络爬虫

    抓取dht网络的磁力链接,使用 libtorrent 的python绑定库开发。 collectord.py dht爬虫服务监控程序 启动并监控dht爬虫进程,在爬虫进程退出后重启启动爬虫,使用 twisted 开发。 安装和使用方法 运行环境 运行...

    python 编写的DHT Crawler 网络爬虫,抓取DHT网络的磁力链接

    抓取dht网络的磁力链接,使用 libtorrent 的python绑定库开发 collectord.py dht爬虫服务监控程序 启动并监控dht爬虫进程,在爬虫进程退出后重启启动爬虫,使用 twisted 开发 安装和使用方法 运行环境 运行的机器...

    Python核心编程第二版(ok)

     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Pythonc对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...

    hendrix:专注于异步和非常规网络流量的python网络服务器。 以这种想法命名,“谁是“扭曲的” Django R? (尽管它可以与任何WSGI应用程序一起使用)

    篝火在没有吉普赛爵士乐的祝福的情况下继续进行,但他的早晨归来却是一个令人恐惧的左撇子角色-熟悉但扭曲(.py) v3.4.0 一个Python Web服务器,使异步和非常规网络流量变得容易,有趣和快速。概述hendrix是用于处理...

    基于Python的仓库管理系统

    创建数据库,Django默认使用sqlite3作为数据库,如果需要mysql数据库,请在greaterwms/settings.py里面配置DATABASE 开发服务器运行: 开发运行: daphne -p 8008 greaterwms.asgi:application daphne -p 8008 ...

    Python网络工具包TwistedMatrix.zip

    Twisted Matrix 是一种越来越受欢迎的纯 Python 框架,用来进行网络服务和应用程序的编程。虽然 Twisted Matrix 中有大量松散耦合的模块化组件,但该框架的中心概念还是非阻塞异步服务器这一思想。在本文中,David ...

Global site tag (gtag.js) - Google Analytics