# Read username, output from non-empty factory, drop connections from twisted.internet import protocol, reactor, endpoints from twisted.protocols import basic class FingerProtocol(basic.LineReceiver): def lineReceived(self, user): self.transport.write(self.factory.getUser(user) + b"\r\n") self.transport.loseConnection() class FingerFactory(protocol.ServerFactory): protocol = FingerProtocol def __init__(self, users): self.users = users def getUser(self, user): return self.users.get(user, b"No such user") fingerEndpoint = endpoints.serverFromString(reactor, "tcp:1079") fingerEndpoint.listen(FingerFactory({ b'moshez' : b'Happy and well'})) reactor.run()