Cara UCSPI-TCP
Ada toolets selain netcat. Berikut ini cara menggunakannya. Mereka semua menganggap keberadaan service
skrip yang menjalankan Anda func
, apa pun itu:
#! / bin / sh
saat membaca -r PESAN
melakukan
echo 1> & 2 "$ {TCPREMOTEIP}" "$ $ TCPREMOTEPORT}" rx "$ {MESSAGE}"
func
selesai
The TCPREMOTEIP
dan TCPREMOTEPORT
variabel lingkungan didefinisikan oleh protokol ucspi-TCP.
Script ini muncul sebagai proses individu per koneksi TCP menggunakan berbagai toolet. Dalam apa yang berikut, alat ditampilkan seperti yang digunakan dalam skrip pendek. Skrip semacam itu, yang dinamai secara konvensional run
, adalah cara seseorang menjalankannya di bawah manajer layanan keluarga-daemontools. Mereka tentu saja dapat dipanggil secara langsung.
Bernstein ucspi-tcp
Dengan ucspi-tcp Daniel J. Bernstein, tcpserver
memunculkan service
skrip:
#! / bin / sh -e
exec tcpserver -v -P -R -H -l 0 0.0.0.0 7777 ./service
Ada versi Bernstein yang ditingkatkan versi IPv6 ucspi-tcp. Dengan Erwin Hoffman, tcpserver
upaya untuk menangani IPv4 dan IPv6 dalam satu (jika sistem operasi mendukung ini, beberapa tidak) dan memunculkan service
skrip:
#! / bin / sh -e
exec tcpserver -v -P -R -H -l 0 :: 0 7777 ./service
Bercot s6-networking, s6, dan execline
Dengan s6-networking Laurent Bercot, s6-tcpserver4
dan s6-tcpserver6
menangani IPv4 dan IPv6 secara terpisah, dan menelurkan service
skrip:
#! / command / execlineb
s6-tcpserver4 -v 0.0.0.0 7777
./layanan
#! / command / execlineb
s6-tcpserver6 -v :: 0 7777
./layanan
Seseorang dapat membangun server yang lebih kompleks dengan menempatkan alat seperti s6-tcpserver-access
dan s6-applyuidgid
dalam rantai segera sebelumnya ./service
.
tidak ada alat UCSPI
Dengan nosh toolset, tcp-socket-listen
dengarkan pada soket TCP, lagi-lagi menangani IPv4 dan IPv6 secara bersamaan jika sistem operasi mendukung melakukannya, dan rantai tcp-socket-accept
yang pada gilirannya memunculkan service
skrip:
#! / bin / nosh
tcp-socket-listen --combine4and6 :: 7777
tcp-socket-accept --verbose --localname 0
./layanan
Atau satu menjalankan dua proses terpisah, pada sistem operasi seperti OpenBSD:
#! / bin / nosh
tcp-socket-listen 0.0.0.0 7777
tcp-socket-accept --verbose --localname 0
./layanan
#! / bin / nosh
tcp-socket-listen :: 7777
tcp-socket-accept --verbose --localname ::
./layanan
Seseorang dapat membangun server yang lebih kompleks dengan menempatkan alat-alat seperti ucspi-socket-rules-check
dan setuidgid
dalam rantai.
#! / bin / nosh
tcp-socket-listen --combine4and6 :: 7777
setuidgid unprivileged-user
tcp-socket-accept --verbose --localname 0
ucspi-socket-rules-check --verbose
./layanan
Pape ipsvd
Dengan ipsvd Gerrit Pape, tcpsvd
menumbuhkan para service
naskah:
#! / bin / sh -e
exec tcpsvd -v 0.0.0.0 7777 ./service
UCSPI-UDP
service
Skrip umum dapat menangani ketika input standar adalah soket aliran . Tapi Anda tidak menentukan TCP secara eksplisit.
Meskipun beberapa toolkit yang disebutkan di atas dapat digunakan untuk membangun server UDP dengan cara yang mirip dengan bagaimana seseorang dapat menggunakannya untuk membangun server TCP (cf udp-socket-listen
in nosh), sulit untuk membangun program layanan aktual dengan skrip shell, karena bawaan shell tidak tentu mengatasi dengan baik ketika input standar adalah soket datagram .
Bacaan lebih lanjut
- Protokol:
- perkakas:
- Daniel J. Bernstein. ucspi-tcp . cr.yp.to.
- s6-networking . Laurent Bercot. skarnet.org.
- s6 . Laurent Bercot. skarnet.org.
- Jonathan de Boyne Pollard (2016). nosh . Perangkat lunak.
- ipsvd . Gerrit Pape. smarden.org.
- manual referensi: