#! /bin/bash #NC imcp.ba@free.fr IMCP Blandy Alain #VERSION CLIENT chattrousperdu.sh DU 1698046928 # 23/10/2023 07:42:08 UTC # ETAT teste et devellope # CE PROGRAMME chattrousperdu.sh EST DESTINE A CHATER EN MODE TEXTE # PROGRAMME CLIENT POUR CHATER EN MODE TEXTE SOUS LINUX # on peut lancer plusieur serveurs correspondant # dans differente Xterm consol ALT+F1 .... # pour servir plusieurs clients simultanement # suppose que l'on a charge # - le module netcat : nc # verifier avec la commande : nc -h # si c'est pas le cas loader le module netcat # pour debian et suite # su # apt-get update # apt-get install netcat # ........... # verifier avec la commande : nc -h # ======================================= # ======================================= # MISE EN OEUVRE PAR COPIER COLLER # # FAIRE UN CD Dans un directory approprie # ex : mkdir conference # cd conference # # OUVRIR OU CREER AVEC UN EDITEUR ./chattrousperdu.sh # et vider la page ( tout selectionner ; supprimer ) # # AVEC VOTRE SEURFEUR DANS L ENCADRE DE COULEUR # COPIER (CTL+C) tous ce fichier source # # REVENIR dans l'editeur # FAIRE UN COLLER le (CTL+V) (ou boutton central sourie) # ET SAUVEGARDER dans ./chattrousperdu.sh # # EN LIGNE DE COMMANDE : # RENDRE EXECUTABLE le fichier : # chmod +x ./chattrousperdu.sh (0755) # LANCER le client ./chattrousperdu.sh # dans des fenetres xterm ou console ALT+F1 .... separees ! # .... # ======================================= # ======================================= # parametres serveur='www.trousperdu.org'; #serveur a contacter par defaut portchat='5555'; #port a contacter par defaut ident='?'; #identitee du demandeur par defaut : inconnue # les parametres d'appel sont identifies par leur possition # un parameter indefinis ( par defaut) est represente pac le caractere '!' if test "$1" != '' && test "$1" != '!' ; then #parametre 1 si different de ! serveur="$1"; # c'est le nom explicite du serveur fi; if test "$2" != ''&& test "$2" != '!' ; then #parametre 2 si different de ! portchat="$2"; # c'est le port explicite du serveur fi; if test "$3" != ''&& test "$3" != '!' ; then #parametre 3 si different de ! ident="$3 $4 $5 $6 $7 $8 $9"; else ident="`hostname -s`"; #identitee du demandeur par defaut sur hostname if test "$?" != '0'; then #meme hostname ne marche pas ? ident='no_hostname_?'; #identitee du demandeur par defaut inconnue fi; fi; # ======================================== echo " $0 $* PROGRAMME CLIENT POUR CHATER EN MODE TEXTE avec le seveur $serveur TCP port $portchat ( usage : $0 $serveur $portchat $ident '!' : parametre par defaut ) Appel simplifie $0 "; # par convention les appel simple sous unix exec # $0 represente le path appel du script # et permet ici auto referencement du fichier script source grep '#VERSION' $0 | grep -v grep; echo; while test '1' == '1'; do # pour relancer la connection au serveur tty -s; # atache a une tty if test "$?" != '0' ; then break; #pour tuer tache non attache a xterm fi; ( sleep 2; # tempo demarrage du nc quit suit ............. echo " ident `date -u +%s` ' $ident ' - HELO $serveur ($portchat) `date -u` "; #envois vers le serveur echo -e " Demande de cession envoye .... ? ($ident) Chat en mode texte Attente d'une reponse operateur ... pour arreter CTL+C ou taper ligne \"Quit\" suivis de 3 returns .... Tapper une ligne vide et votre texte ci-apres :" 1>&2; #en immediat sur stderr cat ; #copi de stdin du client ver le stdoutr du serveur ) | nc $serveur $portchat | # -v mode bavard ( while read ; do # ligne recue entiere (avec les blanc ...) en couleur echo -n -e '\033[01;33m'; # mode colore jaune pour les reponses ESC devant le 033 metre un back slach \\ echo -n -E "$REPLY"; # ligne recue entiere (avec les blanc ...) echo -e '\033[00m'; # mode normal ESC devant le 033 metre un back slach \\ done; ); echo " Pas ou plus de Connection disponnible ! "; echo -n " Voulez vous relancer la connection (ligne vide oui) : "; read a; echo; if test "$a" != ''; then break; fi; echo " Nouvel essai .... "; done; echo " $0 $* PROGRAMME TERMINE "; # copier coller jusque ici # # |