ivdz
Messages postés17Date d'inscriptionjeudi 4 juillet 2002StatutMembreDernière intervention 5 août 2003
-
16 juin 2003 à 10:11
cs_valoue
Messages postés72Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention13 mai 2011
-
22 juin 2004 à 14:50
Bonjour,
J’ai besoin de votre aide. Je travaille sous C++ Builder 6. Je dois envoyer un message ICMP de Type Echo Request puis récupérer le message ICMP de type Echo Reply associé. Et ceci sous le protocole TCP (et non UDP, en UDP je l’ai déjà fait et ça marche) Bref je dois réaliser un Ping sous TCP sans utiliser ce qui existe déjà.
Je suis totalement débutante en ce qui concerne la programmation réseau (socket …)
Voilà mon code et cela ne marche pas. Mon programme marche partiellement, c'est-à-dire que l’initialisation de winsock2, la création du socket, la connexion au serveur, la construction de la trame ICMP de type Echo Request et l’envoi du message fonctionnent. Après, ça bloque ou ça fait n’importe quoi (si je comment la boucle "do {}while( );") Cela fait des jours que je suis dessus mais je n’avance pas.
WSADATA WSAData;
//Initialisation de Winsock2
if(WSAStartup(MAKEWORD(2,2), & WSAData)!=0)
{perror("WSAStartup"); exit(1);}
char packet_buf[100];
struct sockaddr_in their_addr; // Adresse de celui qui se
connecte
int sock_fd;
//création socket if ((sock_fd socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) -1) {perror("socket"); exit(1);}
if(recv(sock_fd, packet_buf, IP_SIZE+ICMP_SIZE, 0)<0)
{perror("recv"); exit(1);}
else {
// Récupération de la partie ICMP du packet
memcpy(icmp, &packet_buf[IP_SIZE], ICMP_SIZE);
}
}while(icmp->type!=0); //ICMP_ECHO REPLY
struct time tps;
gettime((struct time *)&tps);
//Affiche l’heure au moment de la réception du message
//et l’heure contenue dans le message réceptionné et
//calcul leur différence.
double diff=diff_time(&tps,(struct time *)icmp->data);
cout<<”Délais : “<<diff<<" sec. "<<endl<<endl;
}//main
cs_valoue
Messages postés72Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention13 mai 2011 22 juin 2004 à 14:20
Salut,
Je developpe actuellement une appli Client/Serveur en C++.
J'ai utiliser les socket pour etablir la communication, des threads traitent les demandes des clients au niveau du serveur...
Pour le moment je testais la communication avec des phrases en caractères ("Salut serveur" ... "Salut client" ...).
Maintenant, je veuxpasser à des choses plus serieuses et plus techniques.
Je veux realiser une méthode qui fait un ping depuis le client vers le serveur. Coté client, no pb !! Je me suis aidée du prog que tu as donné (merci d'ailleurs).
Mais côté serveur, il va falloir que j'analyse les trames recues et formuler la reponse.
Je ne vois pas comment foruler la reponse au ping.
Pourrais tu m'aider stp? du moins m'expliquer comment faire, voire me rediriger vers qqchose d'existant ??