Ou est l'erreur ? (Update)
Suite à un problème de communication évident entre la Lithuanie et le Pays Basque (aka Aras, développeur du moteur 3D de Project Hoshimi et moi-même), j'ai été obligé de réécrire l'écriture de string dans un flux binaire.
En effet, entre le game Engine et l'un des viewers, la communication s'effectue via TCP et le port 900. Je me refais une communication à la Direct Play en utilisant directement les sockets. Cela permet une très grosse optimisation et permet de jouer via Internet même avec une communication digne de celle de Laurent Kempé, c'est-à-dire à chier!
[Update]Pour ceux qui n'auraient pas compris (pffffff), je faisais allusion ici à la connexion Internet de Laurent chez lui qui est à 512K, bref, une connexion de merde.[/Update]
Donc, j'ai du écrire les ligne suivantes :
public static void WriteString(BinaryWriter writer, string s)
{
int iLength = (new System.Text.UTF8Encoding(false, true)).GetByteCount(s);
writer.Write((UInt16)iLength);
writer.Write(s.ToCharArray(), 0, iLength);
}
Maintenant, dites-moi ou est l'erreur ? ;-))))
Erreur que je ne corrigerais pas d'ailleurs. Les architectes en herbes vont hurler, mais pour une fois, l'UI dictera mon code.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :