Fonctions de transmition et de reception de blocks de données - C - Programmation
Marsh Posté le 31-03-2009 à 21:45:21
- Rien ne te garantit que tu recevras len_data_buffer en une fois. Il faudrait donc également boucler pour recevoir la totalité des données.
- Plutot que atoi(), préfères sscanf.
- Plutot que sprintf(), préfères snprintf pour éviter les débordements de buffer. Imagine len_data = -2000000000 , pouf t'as deja 10 caractères.
Marsh Posté le 31-03-2009 à 23:14:50
xilebo a écrit : - Rien ne te garantit que tu recevras len_data_buffer en une fois. Il faudrait donc également boucler pour recevoir la totalité des données. |
Et comment est ce que je vais savoir quand est ce qu'il faut s'arreter de recevoir dans len_data_buffer ? Quoi qu'il en soit, je pense a envoyer la taille de la donnée sous format binaire (un long de 4 octet) plutot qu'au format text comme je l'ai fait.
Dans SendData, j'envoi la taille comme suite:
Code :
|
Et dans RecvData, je reçois la taille comme suite:
Code :
|
J'aimerai savoir si c'est une bonne idée
Marsh Posté le 01-04-2009 à 00:12:44
ReplyMarsh Posté le 01-04-2009 à 16:04:16
sligor a écrit :
|
Oui en effet. Mais personne n'as de commentaires sur ma méthode si dessus ?
Marsh Posté le 31-03-2009 à 13:54:50
Salut, je voudrai savoir si les fonctions ci-dessous que j'ai défini pour la transition (resp réception) de données sont correctes et efficases. Sinon comment les améliorer ?
Remarque: dans la fonction d'envoi, je commence par envoyer (en mode texte) la taille de la donnée qu'on veux envoyer puis la donnée elle même, et dans la fonction de réception je reçois avant tout, la taille de la données que je dois recevoir, puis la donnée elle même.
Merci.
Message édité par tomap le 31-03-2009 à 14:11:34