Le truc c’est que j’aimerais que PacketAcknowledge dérive de Packet, parce que tous les paquets ont l’entête. Seulement il me semble que ce n’est pas possible?
Ou alors est ce que je dois inclure dans chaque paquet la structure entete? Ca semble possible, mais pas logique. Mes paquets sont une spécialisation d’un paquet de base… pas le contraire… (et ca me fait chier de faire Ack.Header.Priority, au lieu de faire directement Ack.Priority).
De plus j’ai entendu parler de marshalling qui permet de convertir des structures en byte[] pour l’envoyer sur le réseau. J’ai pas tout saisi comment cela fonctionne. J’ai bien lu la doc msdn mais ca m’a l’air un peu flou.
Idéalement ca ferait ce que je souhaite, seulement il reste un petit problème: vu que j’ai des paquets différents (ACK, UPDATE, etc…) comment je fais pour savoir dans quelle structure stocker le paquet vu que le type est transmis dans le buffer?
En gros pour refaire la structure, j’ai besoin de son type, qui est contenu dans le buffer, donc pour le savoir j’ai besoin de décompacter. Et pour décompacter, j’ai besoin du type.
[quote name=’[PERE]Cil’ date=’ 20 Sep 2005, 16:54’]Donc utiliser un fieldoffsetattribute pour mettre le packetType en premier, faire un switch et ensuite démarshalliser. J’aime bien :P.
Et pour mon problème de structure dans la structure? Ca passe le marshalling?
Au fait autre question: est il possible de marshaliser des hashtables?
[right][post=“399498”]<{POST_SNAPBACK}>[/post][/right][/quote]
Les structures dans les structures, ca passe, je l’ai fait (voir SharpSmart, sur mon site). Par contre, la ou tu commence a avoir des soucis, c’est quand t’as des tableaux de structures dans les structures…
[quote name=’[PERE’]Cil, 21 Sep 2005, 09:51]wOot j’ai vu ta doc SharpSmart… elle est faite avec quoi?
[right][post=“399695”]<{POST_SNAPBACK}>[/post][/right][/quote] http://ndoc.sourceforge.net/
[quote name=‹ Tzim › date=’ 20 Sep 2005, 23:29’]Les structures dans les structures, ca passe, je l’ai fait (voir SharpSmart, sur mon site). Par contre, la ou tu commence a avoir des soucis, c’est quand t’as des tableaux de structures dans les structures…
[right][post=« 399687 »]<{POST_SNAPBACK}>[/post][/right][/quote]
Tout le monde comprend pourquoi j’espere Les structs sont allouees sur la stack elle meme, au contraire des classe qui sont sur la heap. La struct est rangee « a plat » sur la stack et donc les trucs de taille variable ca va pas du tout, il faut toujours que sizeof(la struct) soit definit au moment de l’allocation, c’est a dire a la declaration… Les structs sont des « value type » (comme un int ou autre), pas des references et se comportent donc comme telles.