Example 2: echo server, using a StreamServerΒΆ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # Gruvi example program: echo server, using StreamServer
import gruvi
def echo_handler(stream, transport, protocol):
peer = transport.get_extra_info('peername')
print('New connection from {0}'.format(gruvi.saddr(peer)))
while True:
buf = stream.read1()
if not buf:
break
stream.write(buf)
print('Connection lost')
server = gruvi.StreamServer(echo_handler)
server.listen(('localhost', 0))
for addr in server.addresses:
print('Listen on {0}'.format(gruvi.saddr(addr)))
server.run()
|