python twisted应用_使用twisted实现Python客户端 | 学步园

前面介绍了服务端框架,客户端中的代码可以复用其package.py和dispatch.py.

服务端方面一般是控制台运行,可是客户端大部分都是带ui的.

这里分别介绍

1.console

客户端启动 main.py

这里的PyConfigure不做介绍

from config import *

from tcp import *

def main():

#[0] load configure json

cfg = PyConfigure( "cfg.json" )

host = cfg.get_value( "host" )

port = cfg.get_value( "port" )

#[1] connect server

factory = PyClientFactory()

try:

reactor.connectTCP( host, port, factory )

reactor.run()

except:

print "connect server error."

if __name__ == '__main__':

main()

客户端实现 tcp.py

from twisted.internet.protocol import ClientFactory, Protocol

from twisted.protocols.basic import LineReceiver

from twisted.internet import reactor

from twisted.internet.endpoints import TCP4ClientEndpoint

import sys

import struct

from dispatch import *

class PyTcpClient( Protocol ):

def __init__( self ):

self.dispatcher = PyDispatcher( self )

def connectionMade( self ):

print "login"

def connectionLost( self, reason ):

print "connection lost"

def dataReceived( self, data ):

print "receive:", data

self.dispatcher.dispatch( data )

def dataSend( self, data ):

print data

self.transport.write( data )

class PyClientFactory( ClientFactory ):

protocol = PyTcpClient

def clientConnectionFailed( self, connector, reason ):

print 'connection failed:', reason.getErrorMessage()

reactor.stop()

def clientConnectionLost( self, connector, reason ):

print 'connection lost:', reason.getErrorMessage()

reactor.stop()

ok,这样就可以工作了.不过代码不够简洁.

2.ui

其实比较简单:把

reactor.run()

放到线程里面.

在下面结合pyQT4给出具体代码.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值