Je veux qu'un serveur d'écho UDP reçoive des paquets et réponde exactement à ce qu'il a reçu. Comment puis-je simplement faire cela en utilisant netcat
ou socat
? Il devrait rester en vie pour toujours et gérer les paquets provenant de plusieurs hôtes.
netcat
socat
echoserver
Mohammad Hedayati
la source
la source
Réponses:
Un autre outil de type netcat est la version nmap
ncat
, qui a beaucoup de goodies intégrés pour simplifier des choses comme ça. Cela fonctionnerait:-e signifie qu'il exécute / bin / cat (pour répéter ce que vous tapez)
-k signifie garder en vie, qu'il continue d'écouter après chaque connexion
-u signifie udp
-l 1235 signifie qu'il écoute sur le port 1235
la source
J'ai utilisé
socat -v PIPE udp-recvfrom:5553,fork
pour exécuter le serveur etsocat - udp:localhost:5553
pour les clients. Ce fut une grande aide!la source
socat TCP4-LISTEN:2000,fork EXEC:cat
Vous pouvez également utiliser socat (plutôt que d'utiliser netcat) comme serveur d'écho et netcat comme client.
Serveur d'écho Socat (écoute sur le port TCP 1234):
Client Netcat (se connecte à serverip sur le port TCP 1234):
la source
Vous pouvez écrire un programme C qui bifurque
nc -u -l -p 4321
puis utilise dup (2) pour se connecter:Ensuite, dans une boucle sans fin, le parent lit à partir de stdin et écrit dans stdout tout ce que le parent lit.
la source
socat -v PIPE UDP-LISTEN:5555,fork
, mais la deuxième connexion est refusée. Soit dit en passant, cela fonctionne bien avec TCP-LISTEN. J'évite de coder, sinon je pourrais tout écrire en C.Si vous utilisez Windows et utilisez un environnement de type Unix comme cygwin, netcat migth ne fournit pas le paramètre -e. Cela a très bien fonctionné pour moi.
http://bansky.net/echotool/
la source
netcat
solution préinstallée dans UbunutuLe
netcat
pré-installé dans Ubuntu 16.04 vient denetcat-openbsd
, et n'a pas d'-c
option, mais le manuel donne une solution:Ensuite, exemple client:
TODO: comment modifier la valeur de la chaîne d'entrée? Ce qui suit ne renvoie aucune réponse:
L'exemple de shell distant fonctionne cependant:
Cependant, je ne sais pas comment traiter les demandes simultanées.
la source