Как да слушате на порт постоянно (bash netcat python)

Добър ден! има bash скрипт

Искам да слушам данни от този порт и да ги изпратя на python. освен това искам да слушам постоянно, тоест ако имаше една връзка и тя се скъса. след това правя второто, всичко работи.

опитайте отново `nc localhost 30003` # не работи

Тоест след първия път, когато затворихме връзката, тя спира да работи.

ако не използвате pipe python3 script.py в bash скрипта, тогава всичко работи..

Как може да се поправи това?

Настройте слушане на портове с помощта на Python и не ограждайте градината с помощни програми, bash и python.

Да, Python е по-добър за това. Относно умиращите връзки и невъзможността за свързване - има модул за "нишки".

Ето пример за прост TCP сървър, който удовлетворява вашите заявки: #--------------------- import socket import threading bind_ip = "0.0.0.0" bind_port = 9999

сървър = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

print "[*] Слушане на %s:%d" % (bind_ip,bind_port)

# това е нашата нишка за обработка на клиенти def handle_client(client_socket): # отпечатване на това, което клиентът изпраща request = client_socket.recv(1024) print "[*] Received: %s" % request # изпращане обратно на пакет client_socket.send("ACK!") client_socket.close()

while True: client,addr = server.accept() print "[*] Приета връзка от: %s:%d" % (addr[0],addr[1]) # завърта нишката на нашия клиент за обработка на входящи данни client_handler = threading.Thread(target=handle_client,args=(client,)) client_handler.start() #---------- --------------------

Просто вместо ACK отговор, пренасочете данните към втория скрипт.

З.Й. за жалостне публикува раздели тук. За да работи скриптът правилно, те трябва да са на редове 16-21 и 24-28.