Refuse Connections
from twisted.internet import reactor
reactor.run()
在这时候,如果你运行finger nail
或者telnet localhost 1079
那将会收到一个连接被拒绝的错误,因为这里没有任何一个守护进程运行。
Drop Connections
from twisted.internet import protocol, reactor, endpoints
class FingerProtocol(protocol.Protocol):
def connectionMade(self):
self.transport.write(b"server will close the connection")
self.transport.loseConnection()
class FingerFactory(protocol.ServerFactory):
protocol = FingerProtocol
fingerEndpoint = endpoints.serverFromString(reactor, "tcp:1079")
fingerEndpoint.listen(FingerFactory())
reactor.run()
Output from None-empty Factory
from twisted.internet import protocol, reactor, endpoints
from twisted.protocols import basic
class FingerProtocol(basic.LineReceiver):
def lineReceived(self, user):
self.transport.write(b'The will get the user name...')
self.transport.write(self.factory.getUser(user=user) + b'\r\n')
class FingerFactory(protocol.ServerFactory):
protocol = FingerProtocol
def __init__(self, users):
self.users = users
def getUser(self, user):
print(user)
return self.users.get(user, b'There is no such user...')
fingerEndpoint = endpoints.serverFromString(reactor, "tcp:1079")
fingerEndpoint.listen(FingerFactory({b'jason' : b'zsh', b'baby' : b'lxy'}))
print("Started the server....")
reactor.run()
通过上述的代码我们可以得到一个简单的类似数据库的应用服务,当在缓存中存在着输入的用户名的时候,服务就会打印出该用户名在字典中的value值,否则输出默认的字符串。