Hier on a créé un serveur en Ruby avec qui on a discuté avec un client telnet. Aujourd’hui on va se connecter à un serveur en utilisant Ruby comme client.
Ruby en client
Je vais reprendre l’exemple du Ruby Book où l’auteur se connecte à un serveur néerlandais pour faire ses tests.
require "socket" print("Connexion...") clientsock = TCPsocket.open("towel.blinkenlights.nl", 666) print(" terminée\n") puts("Connecté depuis #{clientsock.addr[2]} à #{clientsock.peeraddr[2]}") while (excuse = clientsock.gets) print(excuse) end clientsock.close → Connexion... terminée Connecté depuis jthomas à towel.blinkenlights.nl [H[J === The BOFH Excuse Server === [H === The BOFH Excuse Server === techtonic stress
Alors, d’abord, on importe le module “socket”. Puis on crée un objet TCPsocket avec en paramètre l’adresse et le port. On affiche au fur et à mesure des infos de connexion, notamment le nom de l’hôte client (.addr) et l’adresse du serveur distant (.peeraddr). Ensuite vient la boucle : tant que l’on reçoit des infos du serveur (clientsock.gets) on l’affiche. Puis on se déconnecte dès que l’on ne reçoit plus d’information.
En l’occurence, le serveur renvoit des phrases bizarres du type :
- “operators on strike due to broken coffee machine”
- “You need to upgrade your VESA local bus to a MasterCard local bus.”
- “techtonic stress”
C’est pratique pour voir si on reçoit bien quelque chose de différent à chaque fois. Demain, on va se connecter au serveur Ruby que l’on a créé hier et faire communiquer les deux!
Flux RSS