You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
949 B
30 lines
949 B
import asyncio |
|
from datetime import datetime, timedelta |
|
|
|
async def proxy(reader, writer): |
|
message = await reader.read(1024) |
|
addr = writer.get_extra_info('peername') |
|
|
|
try: |
|
print('Recvd from {}: {}'.format(addr[0], message)) |
|
offset = 32 |
|
date_time_obj = datetime.strptime(str(message)[offset:offset+14], '%Y%m%d%H%M%S') + timedelta(minutes=-5) |
|
send_str = '101' + datetime.strftime(date_time_obj, '%Y%m%d%H%M%S') |
|
send_data = send_str.encode() |
|
print('Sending to {}: {}'.format(addr[0], send_data)) |
|
writer.write(send_data) |
|
await writer.drain() |
|
except ValueError: |
|
print('Ignored unnecessary data') |
|
|
|
writer.close() |
|
|
|
async def main(): |
|
for port in [8995, 8996, 8997]: |
|
server = await asyncio.start_server(proxy, '192.168.69.69', port) |
|
task = asyncio.create_task(server.serve_forever()) |
|
|
|
# block here for now |
|
await task |
|
|
|
asyncio.run(main())
|
|
|