Saya menggunakan netcat untuk menjalankan server sederhana seperti ini:
while true; do nc -l -p 2468 -e ./my_exe; done
Dengan cara ini, siapa pun dapat terhubung ke host saya di port 2468 dan berbicara dengan "my_exe".
Sayangnya, jika orang lain ingin terhubung selama sesi terbuka, itu akan mendapatkan kesalahan "Sambungan ditolak", karena netcat tidak lagi mendengarkan sampai loop "sementara" berikutnya.
Apakah ada cara untuk membuat netcat berperilaku seperti server multi-threaded, yaitu selalu mendengarkan koneksi yang masuk? Jika tidak, apakah ada beberapa solusi untuk ini?
netcat
parallel-processing
etuardu
sumber
sumber
Jawaban:
Anda menggunakan alat yang salah untuk tugas: gunakan sesuatu seperti ucspi-tcp , terutama tcpserver :
sumber
Meskipun Anda tidak menyebutkan sistem operasi yang Anda gunakan, saya akan menganggap itu Linux atau Unix berdasarkan sintaks contoh perintah shell Anda.
Jika sistem Anda menjalankan xinetd (atau pendahulunya inetd ), Anda dapat menggunakan perangkat lunak itu untuk mendengarkan koneksi pada port pilihan Anda, dan menjalankan executable untuk merespons. Dengan xinetd / inetd, Anda memiliki opsi untuk mengizinkan beberapa koneksi konkuren, masing-masing dilayani oleh instance terpisah dari executable Anda.
sumber
Anda mungkin bisa hanya latar belakang proses (maka tidak menunggu pengembalian sebelum melangkah ke loop berikutnya) dengan '&' seperti:
sumber