Socket UDP - Pb Reception du datagramme [C++] - C++ - Programmation
Marsh Posté le 03-06-2003 à 11:18:16
Laisse moi deviner ça t'affiche que les 4 derniers octets non?
(edit je voulais dire premiers, mais bon c même pas ça en plus )
Marsh Posté le 03-06-2003 à 11:20:15
LetoII a écrit : Laisse moi deviner ça t'affiche que les 4 derniers octets non? |
Voui j'ai que 4 octets dans mon buffer ! ça vient de quoi
Marsh Posté le 03-06-2003 à 11:24:29
Si mes souvenirs sur printf sont bons, ton printf("%X",buffer) interpréte l'adresse de ton buffer comme un entier et te l'affiche en exa. Si tu veux afficher to buffer je te conseil de récupérer la taille renvoyée par recvfrom et d'afficher ton buffer par groupe de 4 octets ou un truc du genre
Marsh Posté le 03-06-2003 à 11:27:40
LetoII a écrit : Si mes souvenirs sur printf sont bons, ton printf("%X",buffer) interpréte l'adresse de ton buffer comme un entier et te l'affiche en exa. Si tu veux afficher to buffer je te conseil de récupérer la taille renvoyée par recvfrom et d'afficher ton buffer par groupe de 4 octets ou un truc du genre |
oki j'essaye ça
Merci
Marsh Posté le 03-06-2003 à 14:11:43
bon ya du mieux, j'arrive à afficher la totalité de mes données reçues en fesant une p'tit boucle qui va bien
Mais par contre j'ai quelques couilles dedans genre au lien d'avoir la valeur hexa par ex 'A0' et ben j'ai 'FFFFFFA0' mais ça le fait pas tout le temps
J'arrive pas à résoudre ce pb... une idée
@+
Marsh Posté le 03-06-2003 à 14:29:43
ReplyMarsh Posté le 03-06-2003 à 14:30:38
ReplyMarsh Posté le 03-06-2003 à 14:33:00
Alors déjà tu passe buffer en unsigned char et au lieu de faire un printf de buffer[i] tante un unsigned int temp = buffer[i]; et tu affiche temp.
Marsh Posté le 03-06-2003 à 14:42:15
LetoII a écrit : Alors déjà tu passe buffer en unsigned char et au lieu de faire un printf de buffer[i] tante un unsigned int temp = buffer[i]; et tu affiche temp. |
Veux pas passer en unsigned char cr recvfrom demande un char
error C2664: 'recvfrom' : cannot convert parameter 2 from 'unsigned char [1500]' to 'char *'
Marsh Posté le 03-06-2003 à 14:45:21
k-id a écrit : |
ah c bon en fait il fallait mettre :
size=recvfrom(sock,(char *) buffer,sizeof(buffer),0,(SOCKADDR*)&sin,&sinsize);
ça marche !! merci bcp
Marsh Posté le 03-06-2003 à 11:16:09
hello !
Voilà j'ai un p'tit soucis avec mon prog. Je dois receptionner des datagrammes UDP sur le port 162 (c'est des Traps SNMP) et j'utilise pour ça le p'tit Packet Recever ci dessous. Mais le pb, c'est que je ne reçoit que quelques octets et pas le datagramme complet. Comme on fait pour capturer la totalité de la trame qui arrive ???
Help me ?
Si vous connaissez d'autres moyens pour receptionner les traps SNMP en Visual C++, je suis preneur car je crois que je vais galerer avec cette solution . J'ai vu qu'il existait un truc qui s'appelle MSDN WinSNMP mais j'ai pas le moindre de bout de code ou tuto pour etudier çà
Message édité par k-id le 03-06-2003 à 14:46:41