Saya ingin server gema UDP untuk mendapatkan paket, dan membalas dengan tepat apa yang telah diterima. Bagaimana saya bisa melakukan ini menggunakan netcat
atau socat
? Itu harus tetap hidup selamanya dan menangani paket yang datang dari beberapa host.
netcat
socat
echoserver
Mohammad Hedayati
sumber
sumber
Jawaban:
Alat seperti netcat lainnya adalah versi nmap
ncat
,, yang memiliki banyak bawaan untuk menyederhanakan hal-hal seperti ini. Ini akan berhasil:-e berarti itu mengeksekusi / bin / cat (untuk mengulang apa yang Anda ketik)
-k berarti tetap-hidup, bahwa ia tetap mendengarkan setelah setiap koneksi
-u berarti udp
-l 1235 berarti ia mendengarkan pada port 1235
sumber
Saya dulu
socat -v PIPE udp-recvfrom:5553,fork
menjalankan server dansocat - udp:localhost:5553
untuk klien. Ini sangat membantu!sumber
socat TCP4-LISTEN:2000,fork EXEC:cat
Anda juga dapat menggunakan socat (daripada menggunakan netcat) sebagai server gema dan netcat sebagai klien.
Server gema Socat (mendengarkan pada port TCP 1234):
Klien Netcat (terhubung ke serverip pada port TCP 1234):
sumber
Anda dapat menulis program C yang bercabang
nc -u -l -p 4321
dan kemudian menggunakan dup (2) untuk menghubungkan:Kemudian dalam loop tanpa akhir orangtua membaca dari stdin dan menulis di stdout apa pun yang dibaca orang tua.
sumber
socat -v PIPE UDP-LISTEN:5555,fork
, tetapi koneksi kedua ditolak. Omong-omong, ini berfungsi baik dengan TCP-LISTEN. Saya menghindari kode, kalau tidak saya bisa menulis semuanya dalam C.Jika Anda menjalankan pada Windows dan menggunakan lingkungan seperti unix seperti cygwin, netcat migth tidak menyediakan parameter -e. Ini bekerja dengan baik untuk saya.
http://bansky.net/echotool/
sumber
netcat
solusi pra-instal di UbunutuThe
netcat
pra-instal di Ubuntu 16.04 berasal darinetcat-openbsd
, dan tidak memiliki-c
pilihan, tetapi panduan memberikan solusi:Kemudian contoh klien:
TODO: bagaimana cara memodifikasi nilai string input? Berikut ini tidak mengembalikan balasan apa pun:
Contoh shell jarak jauh berfungsi:
Namun, saya tidak tahu bagaimana menangani permintaan bersamaan.
sumber