
用twisted,用工厂管理连接,每个连接建立transport使用简单方便!参看下面代码:
#Copyright(c)ThePyAMFProject
#SeeLICENSEtxtfordetails
\"\"\"
ExamplesocketserverusingTwisted
@see:U{Documentationforthisexample
raiseSystemExit
fromtwistedinternetprotocolimportProtocol,Factory
fromtwistedinternetimportreactor
fromdatetimeimportdatetime
importpyamf
classTimerProtocol(Protocol):
interval=10#客户端链接到server后,server往客户端发送时间的间隔
encoding=pyamfAMF3
timeout=20#客户端链接到server后多少时间不 *** 作就断开链接的timeout
def__init__(self):
selfstarted=False
#设置编码器
selfencoder=pyamfget_encoder(selfencoding)、
#设置server端将数据编码成amf后存放的缓存地址
selfstream=selfencoderstream
defconnectionLost(self,reason):
ProtocolconnectionLost(self,reason)
print\"locstconnection:
非常麻烦,这是一些分布编程的问题。涉及到域,认证等等问题。如果做商用程序,就用vc+ICE,或者所谓的webservice也是可以的,vc+isapi也行。
如果做一些民用程序,可以做一个数据网关,带消息服务就可以,然后靠消息协议来组织输入、输出。
在B上启动网关。
网关侦听端口
A上启用程序
连接上B的网关
A把数据通过socks发送到B上的网关。
B分析数据,然后调用本地EXE
(如果是别人的EXE,则有两种方法,如果是命令行的,就调用程序,然后重定向输出到磁盘文件,然后解析文件,发送结果回去,如果是普通带窗口的windows程序,需要 *** 控这个exe的界面来实现了)
然后将结果发送给A。
OK!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)