You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
4.0 KiB

Voici les réponses aux différentes questions posées :
1. **Messagerie instantanée en une ligne**:
Pour créer un chat instantané entre deux utilisateurs en utilisant socat, vous pouvez exécuter les commandes suivantes sur les deux machines :
Sur la machine qui agira comme serveur :
```
socat - TCP4-LISTEN:12345,fork
```
Sur la machine qui agira comme client :
```
socat - TCP4:adresse_IP_du_serveur:12345
```
Remplacez `adresse_IP_du_serveur` par l'adresse IP du serveur. Maintenant, tout ce qui est tapé dans une session sera affiché dans l'autre session, et vice versa.
2. **Redirection vers un serveur Web**:
Pour mettre en place un proxy local avec socat pour accéder au serveur Web http://opale.iut.uca.fr sur le port 2000, vous pouvez exécuter la commande suivante sur votre machine :
```
socat TCP-LISTEN:2000,fork TCP:opale.iut.uca.fr:80
```
Vous pourrez ensuite accéder au serveur Web en utilisant `localhost:2000` comme adresse.
3. **Scanner de port**:
Vous pouvez utiliser socat pour créer un scanner de port rapide en une ligne de commande. Par exemple, pour scanner les ports de 0 à 1024 sur une machine distante, vous pouvez utiliser la commande suivante :
```
for port in $(seq 0 1024); do socat -d -d -d TCP4:adresse_IP_de_la_machine:$port; done
```
Assurez-vous de remplacer `adresse_IP_de_la_machine` par l'adresse IP de la machine que vous souhaitez scanner.
4. **Service d'informations**:
Voici un exemple simple de code pour un client et un serveur répondant aux spécifications données en utilisant socat :
Serveur (à lancer sur le serveur) :
```bash
socat TCP4-LISTEN:port,fork EXEC:"/path/to/server_script.sh"
```
Script du serveur (`server_script.sh`) :
```bash
#!/bin/bash
while true; do
read request
case $request in
"cpu")
cat /proc/cpuinfo | grep "model name" | awk -F ': ' '{print $2}'
;;
"users")
who | awk '{print $1}' | sort -u
;;
*)
echo "Unknown request"
;;
esac
done
```
Client :
```bash
echo "cpu" | socat - TCP4:adresse_IP_du_serveur:port
echo "users" | socat - TCP4:adresse_IP_du_serveur:port
```
Vous pouvez exécuter ces commandes sur le client pour envoyer des requêtes au serveur.
5. **Transfert de fichier**:
- Pour transférer un fichier via scp, utilisez simplement la commande `scp` :
```
scp /chemin/vers/bigfile user@adresse_IP_du_collègue:/chemin/destination/
```
- Pour transférer un fichier via socat en TCP, vous pouvez utiliser la commande suivante sur la machine source :
```
cat /tmp/bigfile | socat - TCP4:adresse_IP_dest:port > /dev/null
```
Et sur la machine de destination :
```
socat - TCP4-LISTEN:port > /chemin/de/destination/bigfile
```
- Pour vérifier l'intégrité du transfert, utilisez `md5sum` pour calculer les sommes de contrôle MD5 des deux fichiers (l'original et la copie) et comparez-les.
- Pour le transfert en UDP, vous pouvez utiliser socat avec UDP de manière similaire. Cependant, notez que UDP ne garantit pas la fiabilité du transfert comme TCP, vous pouvez donc rencontrer des pertes de données.
6. **Transferts simultanés**:
- Pour les transferts simultanés avec socat en TCP, chaque binôme doit exécuter la commande d'émission sur la machine source, et la commande de réception sur la machine de destination. Comparez les temps de transfert avec ceux du transfert TCP simple.
- Pour le transfert par multicast avec udpcast, suivez les instructions données. L'intégrité du transfert est assurée par udpcast lui-même, qui gère les erreurs de manière transparente.
- Comparez les temps obtenus avec les méthodes précédentes. Les transferts simultanés devraient être plus rapides que le transfert simple, en particulier en multicast, car plusieurs machines reçoivent simultanément les données sans surcharger le serveur.