Capture de données de connexion simultanées

J’ai un serveur avec plusieurs connexions TCP longue durée entrantes au même port. Je voudrais capturer les données entrantes de chaque connexion dans un fichier séparé. Les données entrantes sont un stream continu de données, c’est-à-dire que l’expéditeur envoie simplement des données en continu. J’ai essayé d’utiliser

ncat -l -k -m 10 -o  

mais l’option -o envoie les données de toutes les connexions au même fichier et je souhaite conserver les données de chaque connexion dans un fichier distinct afin que les données entrantes ne se chevauchent pas. Je peux écrire un programme pour le faire, mais ce serait bien s’il y a quelque chose d’extraordinaire, car cela semble être un cas d’utilisation courant.

Vous pouvez créer un script command.sh comme ceci:

 #!/bin/sh cat > /tmp/output-$NCAT_REMOTE_ADDR-$NCAT_REMOTE_PORT-$NCAT_LOCAL_ADDR-$NCAT_LOCAL_PORT.txt 

Et puis, lancez ncat comme suit:

  ncat -l -k -m 10 -p 9020 -c "./command.sh" 

Cela créera un fichier de sortie distinct pour chaque connexion. Et le nom du fichier sera comme ceci:

 output-127.0.0.1-45329-127.0.0.1-9020.txt