saikal a écrit :
oui et juste quelques autres questions , quels méthodes tu utilises pour rajouter tes entetes a ton buffer? et est ce que tu remplis ton buffer et tu rajoutes lesen têtes apres ou alors l'inverse?
Merci merci merci
|
tu as un buffer d'envoie. Tu fais comme tu veux, mais ça doit partir, donc vaux mieux construire ton buffer de bytes correctement. Il est facile par exemple de convertir de chaine de caractère (string) vers un tableau de bytes.
exemple:
Code :
- //header 14 bytes
- string header = "FILE";
- header = header + " 1024";
- byte[] headerb = Encoding.Unicode.getbytes(header);
- //fichier
- byte[] file = ... ;
- //construction buffer vers le réseau
- byte[] buffer = new byte[file.lengh + headerb.lengh];
- //je ne sais plus s'il y a une méthode pour copier direct des bytes dans un autre tableau
- int i=0;
- for (i=0 ; i<headerb.length ; i++)
- buffer[i] = headerb[i];
- //copie fichier
- for (int j = 0; i<file.lengh ; j++, i++)
- buffer[i] = file[j];
- //Voila que ton buffer est près à être envoyé sur le réseau. C'est quand mm pas compliqué.
|
Et pour la lecture, tu fais tout dans le sens inverse.
Tu lis 14 bytes (4 pour le type, 10 pour la taille).
Puis tu fais en concéquence.
PS: l'entete tjs en premier, sinon il n'a pas de sens. Le but est que le client ne lise d'abord que l'entete puis réagit en conséquence. :s C'est les bases de la programmation réseau
Message édité par moi23372 le 07-04-2006 à 18:11:57