#Весь код взят из интернета. Я наговнокодил в него только цикл for
import asyncio
import concurrent.futures
answerAL = "#AL#1\r\n"
answerAD = "#AD#1\r\n"
@asyncio.coroutine
def handle_connection(reader, writer):
peername = writer.get_extra_info('peername')
while True:
try:
data = yield from asyncio.wait_for(reader.readline(), timeout=100.0)
if data:
for i in str(data): #Проверяю входящую строку посимвольно
if i == 'L': #Если там есть L, то клиенту нужно отправить подтверждение авторизации
writer.write(answerAL.encode())
print('Data = ' + str(data))
break
if i == 'D': #Если там есть D, то клиенту нужно отправить подтверждение получения данных
writer.write(answerAD.encode())
print('Data = ' + str(data))
else:
print('Connection closed by peer')
break
except concurrent.futures.TimeoutError:
print('Connection from closed by timeout')
break
writer.close()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
server_gen = asyncio.start_server(handle_connection, port=1234)
server = loop.run_until_complete(server_gen)
try:
loop.run_forever()
except KeyboardInterrupt:
pass # Press Ctrl+C to stop
finally:
server.close()
loop.close()