Entwickler-Ecke
Netzwerk - Objekte übers netzwerk senden
paddy14 - Sa 14.05.11 00:23
Titel: Objekte übers netzwerk senden
Moin Forum,
gibt es eine Möglichkeit Objekte übers Netwerk senden sowie strings???
Mfg patrick
paddy14 - So 15.05.11 16:33
Ok gut das habe ich soweit verstanden.
Noch eine Frage ich habe z.B. das Objekt Kunde, die Daten am anderen Ende mittelts cast in Kunde umwandeln, bekomme ich hin, aber wie sieht es mit mehreren Objekten aus.
Bsp.:
Ich habe die Objekte Kunde, Bestellung, Rechnung etc.
Wie kann ich die dann am anderen Ende unterscheiden, sprich ich wandele ja immer mit cast um, bloß wenn ich versuche Bestellung in Kunde zu casten naja ist ja klar das das ne Exception gibt.
Wie würdet ihr das lösen?
jaenicke - So 15.05.11 16:43
Das ist eine Sache des Protokolls, das du entwickelst. Du brauchst einen bestimmten Aufbau der Pakete, die du verschickst. An deren Anfang stehen dann Headerdaten, anhand derer du selbst entscheiden kannst was es ist.
Dieses Tutorial ist zwar für Delphi, aber die Funktionsweise eines Protokolls und die Erklärungen dazu sind vom Prinzip her die selben:
http://www.delphi-library.de/topic_66706.html
Ralf Jansen - So 15.05.11 17:08
Bevor du dir sprichwörtlich die Hände schmutzig machst und tief ins Eingemachte greifst wäre es vielleicht hilfreich zu prüfen ob nicht eine Standardkommunikationslösung aus dem .Net Framework wie die
WCF [
http://msdn.microsoft.com/de-de/netframework/aa663324] das die ganzen Teilaspekte wie zum Beispiel serialisieren schon löst nicht für dich passt.
paddy14 - So 15.05.11 17:51
Sorry ich kann mir dieses Tutorial nicht anschauen, hast du vllt ein anderes oder mir das kurz erklären was ich mir darunter vorstellen kann vllt auch mit einem kleinen bsp. code.
Danke.
paddy14 - So 15.05.11 19:23
Ich weiß nicht genau wie das mit den Headern aussehen soll.
Benutze Networkstream und tcpclient...
Oder was auch gut wäre wenn ihr konkrete Stichwörter für meine Googlesuche habt.
Serialisieren ist klar, halt nur das verschicken verschiedener Objekte steige ich nicht durch.
Wäre echt nett, danke.
jaenicke - So 15.05.11 20:05
paddy14 hat folgendes geschrieben : |
Sorry ich kann mir dieses Tutorial nicht anschauen |
Warum nicht? :gruebel:
paddy14 hat folgendes geschrieben : |
Ich weiß nicht genau wie das mit den Headern aussehen soll. |
Naja, du schickst eben vorher z.B. die Zahl 1, wenn es das eine Objekt ist und die zwei, wenn es das andere Objekt ist.
Du kannst ja beliebige Daten schicken. Die liest du dann vor dem Deserialisieren wieder aus und unterscheidest zwischen den Klassen.
paddy14 - So 15.05.11 20:12
Achso Ok, wenn ich das jetzt richtig verstanden habe dann sende ich im grundegenommen 2mal einmal z.B. objekt_id damit die gegeseite weiß um welches Objekt es sich handelt und danach dann das Objekt.
Wenn das so ist dann hatte ich gerade einen kleinen Denkfehler, ich dachte ich müsste da was im Objekt selber initalisieren und das nach dem senden iwie auslesen lassen, deswegen bin ich nicht weiter gekommen.
Ok danke dafür und einen schönen Abend noch.
paddy14 - Di 17.05.11 14:35
Guten Tag Forum,
habe da ein kleines Prob mit dem Serialisieren und Deserialisieren.
hier der Code vom Server:
C#-Quelltext
1: 2: 3: 4: 5:
| serial s = new serial(); s.id = 1; s.nachricht = "foo"; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, s); |
und hier von Client:
C#-Quelltext
1: 2: 3: 4:
| Thread.Sleep(500); BinaryFormatter formatter = new BinaryFormatter(); s = (serial)formatter.Deserialize(stream); richTextBox1.Invoke(new MethodInvoker(ausgabe)); |
dabei bekomme ich folgende Exception, kann einer was damit anfangen und mir bitte erklären was ich falsch mache.
Exception: Die Assembly "server_serialisieren, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" kann nicht gefunden werden.
Danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!