Echo server: Difference between revisions
Content added Content deleted
(add Ruby) |
(Added Python example) |
||
Line 149: | Line 149: | ||
(echo-server 12321) |
(echo-server 12321) |
||
</lang> |
</lang> |
||
=={{header|Python}}== |
|||
{{works with|Python|2.3 or above}} |
|||
<lang python>import SocketServer |
|||
HOST = "localhost" |
|||
PORT = 12321 |
|||
# this server uses ThreadingMixIn - one thread per connection |
|||
# replace with ForkMixIn to spawn a new process per connection |
|||
class EchoServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer): |
|||
# no need to override anything - default behavior is just fine |
|||
pass |
|||
class EchoRequestHandler(SocketServer.StreamRequestHandler): |
|||
""" |
|||
Handles one connection to the client. |
|||
""" |
|||
def handle(self): |
|||
print "connection from %s" % self.client_address[0] |
|||
while True: |
|||
line = self.rfile.readline() |
|||
if not line: break |
|||
print "%s wrote: %s" % (self.client_address[0], line.rstrip()) |
|||
self.wfile.write(line) |
|||
print "%s disconnected" % self.client_address[0] |
|||
# Create the server |
|||
server = EchoServer((HOST, PORT), EchoRequestHandler) |
|||
# Activate the server; this will keep running until you |
|||
# interrupt the program with Ctrl-C |
|||
print "server listening on %s:%s" % server.server_address |
|||
server.serve_forever()</lang> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |