Bonjour,
Je souhaite établir la communication via telnet entre mon pc (WinXP) et un chassis tournant lui aussi sous Windows. Mon pc est donc le client et mon chassis le serveur sur lequel je souhaite me connecter.
J'utilise donc pour cela des sockets via les lignes classiques suivantes:
En exécutant pas à pas chacune des lignes du code, j'obtiens belle et bien un numéro d'ID de socket correct, et le fonction connect me retourne bien 0. Tout porte ainsi à dire que je suis bien connecté sur mon châssis serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SOCKET sock; SOCKADDR_IN sin; sin.sin_addr.s_addr = inet_addr(MON_IP); sin.sin_family = AF_INET; sin.sin_port = htons(23); sock = socket(AF_INET,SOCK_STREAM,0); connect(sock, (SOCKADDR *)&sin, sizeof(sin));
Le problème surgit lorsque je souhaite lire dans mon buffer:
j'obtiens le code ÿû ÿû . Néanmoins la fonction revc me renvoie bien le nombre d'octets lus
Code : Sélectionner tout - Visualiser dans une fenêtre à part recv(sock, buffer, sizeof(buffer), 0);
Mes conclusions: mon pc client est bien connecté au chassis serveur mais il y a certainement un problème de format lors de la communication entre les deux machines.
J'ai vu que par défaut la comm' s'effectue en ASCII mais qu'il est parfois préférable de basculer dans un mode de dialogue binaire. Mais je ne trouve pas la commande pour effectuer ce changement de mode de communication (pour un serveur sous Unix il suffit d'utiliser les commandes mode, ascii, binary a priori) sous Windows...
Quelqu'un peut il m'éclairer sur la question?
Merci!!
J'en profite pour ajouter que dans différents forum j'ai vu assez souvent cette question mais peu de réponses![]()
Partager