C# Désérialiser une structure après l'avoir reçue via TCP
Lorsqu'ils tentent de transmettre une structure via TCP, les utilisateurs peuvent rencontrer des problèmes de désérialisation. Plus précisément, l'exception « System.Runtime.InteropServices.SafeArrayTypeMismatchException » peut se produire lors de l'exécution du client et du serveur sur des machines distinctes. Ce problème est dû à une mauvaise gestion de la taille et de l'en-tête du paquet.
Préfixage de longueur
Pour résoudre ce problème, un préfixage de longueur approprié doit être implémenté. Cela implique l'ajout d'un en-tête fixe à chaque paquet contenant la longueur des données transmises. Le format de l'en-tête est le suivant :
[Length (4 bytes)][Header (1 byte)][Data (x byte(s))]
Lecture d'un paquet
Pour lire un paquet, les étapes suivantes sont suivies :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!