netcat as a multithread server
I use netcat to run a simple server like this:
while true; do nc -l -p 2468 -e ./my_exe; done
This way, anyone is able to connect to my host on port 2468 and talk with "my_exe".
Unfortunately, if someone else wants to connect during an open session, it would get a "Connection refused" error, because netcat is no longer in listening until the next "while" loop.
Is there a way to make netcat behave like a multi-threaded server, i.e. always in listening for incoming connections? If not, are there some workarounds for this?
you are using the wrong tool for the task: use something like ucspi-tcp, especially tcpserver:
tcpserver waits for incoming connections and, for each connection,
runs a program of your choice.
Although you didn't mention the operating system you're using, I'll assume it's Linux or Unix based on the syntax of your shell command example.
If your system is running xinetd (or its predecessor inetd), you can use that software to listen for a connection on the port of your choice, and run an executable to respond. With xinetd/inetd, you have the option of allowing multiple concurrent connections, each served by a separate instance of your executable.