我想写一个服务器,可以接受多个客户端在Python(扭曲)。我已经非常熟悉使用标准python套接字模块的套接字编程,但是这里出现了问题.. 我认为twisted很难进入,我已经阅读了一些关于它的教程。 但我真的找不到一个简单的套接字服务器接受多个连接..任何人都可以帮忙吗?如果我在网上错过了一些有价值的信息,请让我知道,因为我拉我的头发..多个客户端的扭曲服务器
任何帮助是非常赞赏,
Andesay
我想写一个服务器,可以接受多个客户端在Python(扭曲)。我已经非常熟悉使用标准python套接字模块的套接字编程,但是这里出现了问题.. 我认为twisted很难进入,我已经阅读了一些关于它的教程。 但我真的找不到一个简单的套接字服务器接受多个连接..任何人都可以帮忙吗?如果我在网上错过了一些有价值的信息,请让我知道,因为我拉我的头发..多个客户端的扭曲服务器
任何帮助是非常赞赏,
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)。祝你好运!
我想,你没有得到的扭曲的本质。如果您创建了双绞线套接字服务器,则默认情况下可通过多个客户端进行连接我会按顺序建议下列教程,然后阅读扭曲的文档。根据这些教程中的内容编写小片段,以了解实际发生的情况。
Twisted是一个真棒框架,但这个(经常)意味着,对于一件容易的事情,可能是一个很困难......
这是事实。你需要写一个类实现了一个Resource,如果你需要一个LineReceiver,然后将其与连接到反应器:
reactor.connectTCP(<HOST>, <PORT>, istance_of_your_class)
经过反思,这个答案根本没有任何意义。您已将'resource'链接到'ClientFactory',并且我没有看到'connectTCP'如何与* all *处的提问者问题相关联。 “接受多个客户端”听起来像提问者正在编写*服务器*而不是客户端。资源只与HTTP有关,一个'LineReceiver'与什么有关,你在说什么类有一个实例? – Glyph 2011-01-05 15:28:42
本教程是一个伟大的(最好的)出发点来学习如何从头开始编写扭曲服务器: http://twistedmatrix.com/documents/current/core/howto/tutorial/index.html
你看http://stackoverflow.com/questions/1365737/managing-multiple-twisted客户端连接 – 2011-01-05 13:41:36
安德鲁,我认为这个问题与Andesay提出的问题不同。我觉得Andesay的问题在很基础的层面上。如果我错了,请纠正我。 – 2011-01-05 13:44:21