Struktur über den Socket
-
@Ceos: MSG_PEEK sollte man nicht verwenden.
http://tangentsoft.net/wskfaq/newbie.html#peeking
http://support.microsoft.com/?scid=kb%3Ben-us%3B140263&x=8&y=12
-
hm ... gut zu wissen .... deswegen verwende ich winsock 2 ... tut mir leid das ich da von mirauf andere geschlossen habe, allerdings ist es datentechnisch genauso aufwendig erstmal alles dynamisch zwischenspeichern zu müssen .... ok bei dem hier ist es wenbiger ein problem, da legt man den peicher an, schreibt rein was man hat, mit maxlen = dem was man erwartet und anschliessend fürden fall das mal nicht alles da iss reduzierrt man einfach den zu erwartenden wert und schreibt dann einfach ab der position weiter wo man aufgehört hat .... ich hab ein etwas verzwickteres problem, weswegen ich nur schwer darauf verzichten kann .... by the way gilt das problem denn weiterhin auch für winsock 2 ?? kann mich zumindest bisher nicht über derartige vorfälle beklagen
-
Mach aus dem char* ein Char-Array mit fest definierter Länge und dann haust du das ganze Zeug mit reinterpret typecast-dingsda raus
Sollte klappen, knallt allerdings gewaltig wenn nicht das ankommt, was man erwartet 
-
da er es einfach hält und nur n einfachen chat macht sollte es so gehen ansonsten kannst ja mal die 2 ansätze von mir und sovok ansehen unter
http://www.c-plusplus.net/forum/viewtopic-var-t-is-192748.html
-
Normalerweise kann er die Struktur doch auch serialisieren und
anschließend verschicken, oder? Ist das nicht ein Anwendungsgebiet
von Serialisierung?
-
jo, und die vorgestellten lösungen machen nichts weiter, als die struktur zu serialisieren. wenn man es "schöner" machen will, schreibt man sich ne methode, die das objekt in nen string umbastelt, schickts dann durch die generische socket schicht, die nur mit simplen strings arbeitet und verwendet beim empfänger ne deserialize methode, die aus dem string wieder die entsprechende struktur bastelt.
die lösung hier ist halt direkt auf das problem zugeschnitzt.
-
um jetzt nochmal auf serialisierung zurück zu kommen:
ob ich nu nen Speicher-Dump- oder eine XML-Variante
verwende, es alles serialisierung richtig?!
-
jo. serialisierung bedeutet nichts weiter, als ein high level objekt flachzuklopfen. ob man aus dem ding nu nen string macht oder alle anteile in ein "high level" xml dokument klopft (SOAP sieht sowas u.u. vor), bleibt geschmackssache.
-
Ja, Serialisierung ist ein sehr allgemeines Konzept - das umfasst alle Möglichkeiten, dein Objekt in eine sequentielle Form zu quetschen.
(wichtig für die Anwendung ist nur, daß die Gegenseite weiß, nach welchem Prinzip serialisiert wurde)
-
Danke für die Info!