Dryko
Messages postés18Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention24 juillet 2008
-
19 févr. 2008 à 10:30
cs_sosoOo
Messages postés2Date d'inscriptionjeudi 1 mars 2007StatutMembreDernière intervention29 mars 2009
-
29 mars 2009 à 21:40
Salut tout le monde,
Je vous explique vite fait mon programme :
Je dois envoyer par Ethernet des paquets RTP et pour ca je créé des sockets :
SOCKET sock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP).
et j'envoie avec :
sendto(sock,(char*)&buffer,sizeof(buffer),0,(SOCKADDR*)&csin,sizeof(csin))
csin étant le destinataire
Ceci me crée et envoie donc mes paquets UDP auquels j'ai rajouté l'entete RTP pour avoir ce que je veux.
J'envoie mes paquets et j'observe avec Ethereal les paquets qui passent et ca marche parfaitement.
Mais le probleme est le suivant c'est que théoriquement on peut envoyer des paquets jusqu'a 65525octets donc enviton 64ko pour la donnée brute. Mais quelque soit la taille de ma donnée, dans l'entete IP, la champ total lengh est figé a 996 (03 e4 en héxa)( j'ai observé ca avec Ethereal)et dans l'entete UDP c'est marqué la bonne taille de donnée mais avec comme remarque "boggus, should be 976"!!!!
De plus je remarque que lorsque la donnée est trop grosse, ca envoie des paquets IP (pas UDP ou RTP) suplementaires proportionnels a la taille de ma donnée.....
Bref je suis un peu paumé et je dois absoulument trouvé un moyen pour envoyer mes paquets de la taille que je veux!!!!