fork download
  1. #Весь код взят из интернета. Я наговнокодил в него только цикл for
  2.  
  3. import asyncio
  4. import concurrent.futures
  5.  
  6. answerAL = "#AL#1\r\n"
  7. answerAD = "#AD#1\r\n"
  8.  
  9. @asyncio.coroutine
  10. def handle_connection(reader, writer):
  11. peername = writer.get_extra_info('peername')
  12. while True:
  13. try:
  14. data = yield from asyncio.wait_for(reader.readline(), timeout=100.0)
  15. if data:
  16.  
  17. for i in str(data): #Проверяю входящую строку посимвольно
  18.  
  19. if i == 'L': #Если там есть L, то клиенту нужно отправить подтверждение авторизации
  20. writer.write(answerAL.encode())
  21. print('Data = ' + str(data))
  22. break
  23.  
  24.  
  25. if i == 'D': #Если там есть D, то клиенту нужно отправить подтверждение получения данных
  26. writer.write(answerAD.encode())
  27. print('Data = ' + str(data))
  28. else:
  29. print('Connection closed by peer')
  30. break
  31. except concurrent.futures.TimeoutError:
  32. print('Connection from closed by timeout')
  33.  
  34. break
  35. writer.close()
  36.  
  37. if __name__ == '__main__':
  38. loop = asyncio.get_event_loop()
  39. server_gen = asyncio.start_server(handle_connection, port=1234)
  40. server = loop.run_until_complete(server_gen)
  41. try:
  42. loop.run_forever()
  43. except KeyboardInterrupt:
  44. pass # Press Ctrl+C to stop
  45. finally:
  46. server.close()
  47. loop.close()
Runtime error #stdin #stdout #stderr 0.01s 118656KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
  File "prog.py", line 14
    data = yield from asyncio.wait_for(reader.readline(), timeout=100.0)
                ^
SyntaxError: invalid syntax