Skip to content

Commit 814b153

Browse files
committed
examples/bench/server: Add --proto option
1 parent 3941670 commit 814b153

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

examples/bench/server.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ async def echo_client_streams(reader, writer):
5656
writer.close()
5757

5858

59+
class EchoProtocol(asyncio.Protocol):
60+
def connection_made(self, transport):
61+
self.transport = transport
62+
63+
def connection_lost(self, exc):
64+
self.transport = None
65+
66+
def data_received(self, data):
67+
self.transport.write(data)
68+
69+
5970
async def print_debug(loop):
6071
while True:
6172
print(chr(27) + "[2J") # clear screen
@@ -67,6 +78,7 @@ async def print_debug(loop):
6778
parser = argparse.ArgumentParser()
6879
parser.add_argument('--uvloop', default=False, action='store_true')
6980
parser.add_argument('--streams', default=False, action='store_true')
81+
parser.add_argument('--proto', default=False, action='store_true')
7082
parser.add_argument('--addr', default='127.0.0.1:25000', type=str)
7183
parser.add_argument('--print', default=False, action='store_true')
7284
args = parser.parse_args()
@@ -100,6 +112,10 @@ async def print_debug(loop):
100112
print('serving on: {}'.format(addr))
101113

102114
if args.streams:
115+
if args.proto:
116+
print('cannot use --stream and --proto simultaneously')
117+
exit(1)
118+
103119
print('using asyncio/streams')
104120
if unix:
105121
coro = asyncio.start_unix_server(echo_client_streams,
@@ -108,6 +124,17 @@ async def print_debug(loop):
108124
coro = asyncio.start_server(echo_client_streams,
109125
*addr, loop=loop)
110126
srv = loop.run_until_complete(coro)
127+
elif args.proto:
128+
if args.streams:
129+
print('cannot use --stream and --proto simultaneously')
130+
exit(1)
131+
132+
print('using simple protocol')
133+
if unix:
134+
coro = loop.create_unix_server(EchoProtocol, addr)
135+
else:
136+
coro = loop.create_server(EchoProtocol, *addr)
137+
srv = loop.run_until_complete(coro)
111138
else:
112139
print('using sock_recv/sock_sendall')
113140
loop.create_task(echo_server(loop, addr, unix))

0 commit comments

Comments
 (0)