bonjour jai besoinr daide ssur mon serveur telnet :
Je suis sous NT en language C/C++ avec Borland builder X
quand je le lance tout fonction , il attend la connexion dun client , si il arrive il affiche l'ip sur la consol du serveur.
Maintenant mon probleme ce situe au niveau du client :
jutilise comme client : TELNET de windows
je lui envoi sans probleme une question ...
elle s'affiche !
mais pour la reponse : client -> serveur ! ca ne marche pas.
c'est a dire quil ne me laisse pas frapper ma reponse ...
Il passe directement a la ligne d'apres !
voici mon code :
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")
#define send(coco,caca) send(coco,caca,strlen(caca),0)
#define recu(toto, titi, tata) recv(toto, titi, tata, 0)
int main(void)
{
char loginr[80] = "";
char loginok[80] = "Hergo";
int len = 4096;
SOCKET s;
SOCKET c;
sockaddr_in sin;
WSAEVENT EventClose = WSACreateEvent();
WSADATA wsa;
WSAStartup(MAKEWORD(2,0), &wsa);
s = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_family = AF_INET;
sin.sin_port = htons(23);
sin.sin_addr.S_un.S_addr = INADDR_ANY;
bind(s,(sockaddr *) &sin, sizeof(sin));
listen(s, 5);
int SinSize = sizeof(sin);
c = accept(s, (sockaddr *) &sin, &SinSize);
WSAEventSelect(c, EventClose, FD_CLOSE);
printf("connection accepte\n");
printf(inet_ntoa(sin.sin_addr));
start:
send ( c," # Entre Ton Login:");
recu(c, loginr, len); /// c'est ICI que ca plante ... il passe directement en dessous !!!! il n'attend pas la reponse
if (strcmp(loginr, loginok)) {
send (c, " Login Incorrect." );
goto start;
}
else {
send (c," ok !!!!");
}
WSAWaitForMultipleEvents(1, &EventClose, FALSE, WSA_INFINITE, FALSE);
printf("connection perdue\n");
return 0;
}
Merci de bien vouloi repondre et m'aider c vraiment important !!!!!
jai essayer aussi de mettre MSG_WAITALL dans RECV ca marche pas non plus !
jai essayer aussi avec une boucle while trouver dans Bubsock !!!
ca ne marche pas !
jai aussi penser que ca pourai etre TELNET qui nattend pas de reponse !!!
je suis perdu !!!!
aidez moiiii
merci.