繁体   English   中英

多个客户端的扭曲服务器

[英]Twisted server for multiple clients

我想编写一个可以接受python(twisted)中的多个客户端的服务器。 我已经非常熟悉使用标准python套接字模块的套接字编程,但是这里遇到了麻烦。我认为扭曲很难进入,我已经阅读了一些有关它的教程。 但我真的找不到的是一个接受多个连接的简单套接字服务器..任何人都可以帮忙吗? 如果我在网上错过了一些有价值的信息,请告诉我,因为我正在拉我的头发..

任何帮助深表感谢,

Andesay

比如,您想运行服务器接受端口9000上的客户端连接:

from twisted.internet import reactor, protocol

PORT = 9000

class MyServer(protocol.Protocol):
    pass

class MyServerFactory(protocol.Factory):
    protocol = MyServer

factory = MyServerFactory()
reactor.listenTCP(PORT, factory)
reactor.run()

如果你想测试连接到这个服务器,这里是客户端的代码(在不同的终端中启动):

from twisted.internet import reactor, protocol

HOST = 'localhost'
PORT = 9000

class MyClient(protocol.Protocol):
    def connectionMade(self):
        print "connected!"

class MyClientFactory(protocol.ClientFactory):
    protocol = MyClient

factory = MyClientFactory()
reactor.connectTCP(HOST, PORT, factory)

reactor.run()

您会注意到代码非常相似,只有我们为服务器使用Factory而客户端使用ClientFactory,服务器需要在客户端需要连接时监听(listenTCP)(connectTCP)。 祝好运!

我想,你没有得到扭曲的本质。 如果您创建一个扭曲的套接字服务器,它默认可通过多个客户端连接。 我会按顺序建议以下教程,然后阅读扭曲的文档。 编写这些教程中给出的小片段,以了解实际发生的情况。

  1. 戴夫佩蒂科拉的扭曲教程
  2. Itamar Shtull-Trauring的扭曲演示

本教程是学习如何从头开始编写扭曲服务器的一个很好的(最佳)起点: http//twistedmatrix.com/documents/current/core/howto/tutorial/index.html

扭曲是一个很棒的框架,但这(通常)意味着,对于简单的事情,它可能是一个相当困难的...

这是事实。 您需要编写一个实现Resource的类,如果需要,还可以编写LineReceiver,然后将其附加到reactor:

reactor.connectTCP(<HOST>, <PORT>, istance_of_your_class)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM