web-dev-qa-db-fra.com

Comment construire un simple chat en utilisant netcat?

Je travaille actuellement sur un projet et j'ai implémenté une application de discussion simple utilisant les bibliothèques netcat.

Le client est invité à entrer le numéro de port et la commande

nc -l -p xxxx

xxxx est le numéro de port saisi par le client.

De même, l’hôte reçoit le même numéro de port et une connexion est établie à l’aide de

nc <ip_address> -p xxxx

Cependant, cela donne une expérience de chat vierge car il ne montre pas le nom d'utilisateur de la personne qui tape les messages, quelque chose comme

hey
hello
what's up
Nothing

Au lieu de cela, je veux que ce soit quelque chose comme,

Foo : hey
Boo : hello
Foo : what's up
Boo : Nothing

Puis-je utiliser netcat pour réaliser cette fonctionnalité ou y a-t-il autre chose qui le fasse?

27
Sachin Kamath

Vous pouvez faire quelque chose comme ça.

Supposons que Alice est le serveur. Elle tape:

mawk -W interactive '$0="Alice: "$0' | nc -l -p <port_number> <ip_of_alice>

Ensuite, Bob se connecte à ce serveur. Il tape:

mawk -W interactive '$0="Bob: "$0' | nc <ip_of_alice> <port_number>

Les lignes mawk n'ajoutent que le nom de la personne précédant l'appel à la "discussion". Nous avons besoin de -W interactive pour définir les écritures non mises en mémoire tampon sur stdout et les lectures en mémoire tampon de lignes provenant de stdin.


Maintenant, Alice tape Hi Bob et voit:

Hi Bob

Bob voit:

Alice: Hi Bob

Bob tape Hi Alice et voit:

Alice: Hi Bob
Hi Alice

Alice voit:

Hi Bob
Bob: Hi Alice
34
chaos