Hi,
ich hab eine Socketverbindung zwischen einem PDA und einem Server. Hier will ich ein Objekt übertragen. Momentan mach ich das so, dass ich die Werte des Objekts in einen Memorystream packe, aus diesem dann mit ToArray() ein ByteArray erstelle und dieses ByteArray verschicke ich dann. Es kommt auch beim Server an.
Mein Problem ist jetzt, wie ich die Daten aus dem Array wieder rausbekomme, da der Stream das ohne Positionierung in den Array schreibt.
Hab mal testweise versucht die ByteLänge von einem der umgewandelten Werte auszulesen und aus dem Stream einen Bytestring dieser Länge rauszuholen. Aber da kommt nix bei raus.
Hoffe jemand kann mir helfen.
Je mehr ich andere Möglichkeiten zur Übertragung ausprobiere, desto öfter scheitere ich. Im Compact Framework gibts so ziemlich keine Serialisierungsmethoden, weder BinaryFormatter noch XmlSerializer. X(
Hi JDizzle,
gibt es im Compact Framework vielleicht System.IO.BinaryWriter und System.IO.BinaryReader? Mit den beiden Klassen können einfache Datentypen übertragen werden. Man muss nur wissen in welcher Reihenfolge die Daten im Stream liegen.
Hier mal ein Beispiel (das Prinzip angedeutet):
// Data-Struktur.
public struct Data {
public string FieldA;
public double FieldB;
public long FieldC;
public Data(string a, double b, long c) {
FieldA = a; FieldB = b; FieldC = c;
}
}
// Zu schreibendes Data-Object.
Data data = new Data("Test", 2.5, 6L);
// In den Stream schreiben.
MemoryStream output = new MemoryStream();
BinaryWriter writer = new BinaryWriter(output);
writer.Write(data.FieldA);
writer.Write(data.FieldB);
writer.Write(data.FieldC);
// Wieder auslesen.
MemoryStream input = new MemoryStream(output.ToArray());
BinaryReader reader = new BinaryReader(input);
string a = reader.ReadString();
double b = reader.ReadDouble();
long c = reader.ReadInt64();
// Ausgelesenes Data-Objekt
Data data2 = new Data(a, b, c);
Gruss
Pulpapex
Original von JDizzle
Tausend Dank. 😁Das rettet mir meinen Arsch 😉
Zu Pocket PC und Arsch fällt mir dieser Thread wieder ein.... hab mich halb krumm gelacht dabei:
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...