Ich benutze Netcat, um einen einfachen Server wie diesen auszuführen:
while true; do nc -l -p 2468 -e ./my_exe; done
Auf diese Weise kann jeder über Port 2468 eine Verbindung zu meinem Host herstellen und mit "my_exe" sprechen.
Wenn jemand anderes während einer offenen Sitzung eine Verbindung herstellen möchte, wird leider der Fehler "Verbindung abgelehnt" angezeigt, da netcat bis zur nächsten "while" -Schleife nicht mehr lauscht.
Gibt es eine Möglichkeit, Netcat dazu zu bringen, sich wie ein Multithread-Server zu verhalten, dh immer auf eingehende Verbindungen zu warten? Wenn nicht, gibt es dafür einige Problemumgehungen?
netcat
parallel-processing
etuardu
quelle
quelle
Antworten:
Sie verwenden das falsche Tool für die Aufgabe: Verwenden Sie so etwas wie ucspi-tcp , insbesondere tcpserver :
quelle
Obwohl Sie das verwendete Betriebssystem nicht erwähnt haben, gehe ich davon aus, dass es sich um Linux oder Unix handelt, basierend auf der Syntax Ihres Shell-Befehlsbeispiels.
Wenn auf Ihrem System xinetd (oder sein Vorgänger inetd ) ausgeführt wird, können Sie mit dieser Software auf eine Verbindung am Port Ihrer Wahl warten und eine ausführbare Datei ausführen, um zu antworten. Mit xinetd / inetd haben Sie die Möglichkeit, mehrere gleichzeitige Verbindungen zuzulassen, die jeweils von einer separaten Instanz Ihrer ausführbaren Datei bedient werden.
quelle
Sie könnten den Prozess wahrscheinlich nur als Hintergrund (dann wartet er nicht auf eine Rückkehr, bevor Sie zur nächsten Schleife übergehen) mit einem '&' wie:
quelle