34 lines
922 B
Python
34 lines
922 B
Python
#! /usr/bin/env python
|
|
"""\
|
|
Simple server that listens on port 6000 and echos back every input to
|
|
the client. To try out the server, start it up by running this file.
|
|
|
|
Connect to it with:
|
|
telnet localhost 6000
|
|
|
|
You terminate your connection by terminating telnet (typically Ctrl-]
|
|
and then 'quit')
|
|
"""
|
|
|
|
from eventlet import api
|
|
|
|
def handle_socket(reader, writer):
|
|
print "client connected"
|
|
while True:
|
|
# pass through every non-eof line
|
|
x = reader.readline()
|
|
if not x: break
|
|
writer.write(x)
|
|
print "echoed", x
|
|
print "client disconnected"
|
|
|
|
print "server socket listening on port 6000"
|
|
server = api.tcp_listener(('0.0.0.0', 6000))
|
|
while True:
|
|
try:
|
|
new_sock, address = server.accept()
|
|
except KeyboardInterrupt:
|
|
break
|
|
# handle every new connection with a new coroutine
|
|
api.spawn(handle_socket, new_sock.makefile('r'), new_sock.makefile('w'))
|