![]() |
Ganze Klassen über Lan verschicken?
Ich wollte hier mal nachfragen, ob es möglich ist, dass ich mir eine Klasse schreibe zB so:
Delphi-Quellcode:
So und könnte ich zB dieses komplette Deck per Lan übertragen? Hoffe ihr versteht was ich mein!
type
TDeck = class ....... end; ........ var Deck: TDeck; ........ Deck := TDeck.Create; |
Re: Ganze Klassen über Lan verschicken?
Corba, DCOM, Midas, ...
|
Re: Ganze Klassen über Lan verschicken?
Ok, hat mir ehrlich gesagt jetzt nicht soviel geholfen, im Forum hier war nicht so viel zu finden. Naja trotzdem danke vielleicht find ich morgen ja noch was...
|
Re: Ganze Klassen über Lan verschicken?
wie wärs mit einem WinSocket.SendBuf?
|
Re: Ganze Klassen über Lan verschicken?
Über SendBuf hab ich shcon n bissl was gelesen, aber bisher nur dass man damit Records verschicken kann, geht das auch mit meinen Vorstellungen?
Is das mit den Indy-Komponenten realisierbar? |
Re: Ganze Klassen über Lan verschicken?
|
Re: Ganze Klassen über Lan verschicken?
Übers Netz kann eh nur eine serialisierte Version einer Klasse übertragen werden. Techniken wie CORBA, SOAP oder DCOM/COM+ sorgen dafür das eine auf einer Seite implementierte Klasse auf der "anderen" Seite mittels Proxy/Stub als Interface zur verfügung steht. .NET kann mit remoting noch einen Schritt weiter gehen und auf beiden Seiten das Objekt zum leben bringen ohne das für jeden Methodenaufruf eine Netzwerkübertragung über Proxy/Stub erfolgen muß.
Wenn du uns noch ein paar Rahmenbedingungen für deine Anforderung nennst können wir dir auch verraten welche Technik für dich vernünftig Einsetzbar ist. |
Re: Ganze Klassen über Lan verschicken?
Zitat:
Ums Serialisieren kommt man also kaum drum herum. Verschiedene Technologieen wurden da ja bereits genannt... mfg Christian |
Re: Ganze Klassen über Lan verschicken?
Hi!
Also bis jetzt bin ich hiermit ganz gut gefahren:
Delphi-Quellcode:
Man kann damit ganz einfach die Klasse in einen Stream schreiben (ToStream) und danach verschicken. Den empfangenen Stream kann man ganz einfach mit FromStream in die Klasse einlesen.
type
TStreamableClass = class private fSetting1: ShortString; fSetting2: ShortInt; fSetting3: Boolean; public procedure ToStream(Stream: TStream); procedure FromStream(Stream: TStream); property Setting1: ShortString read fSetting1 write fSetting1; property Setting2: ShortInt read fSetting2 write fSetting2; property Setting3: Boolean read fSetting3; end; implementation { TStreamableClass } procedure TStreamableClass.FromStream(Stream: TStream); begin Stream.Position := 0; Stream.read(fSetting1, SizeOf(fSetting1)); Stream.read(fSetting2, SizeOf(fSetting2)); Stream.read(fSetting3, SizeOf(fSetting3)); end; procedure TStreamableClass.ToStream(Stream: TStream); begin Stream.Position := 0; Stream.Write(fSetting1, SizeOf(fSetting1)); Stream.Write(fSetting2, SizeOf(fSetting2)); Stream.Write(fSetting3, SizeOf(fSetting3)); end; Ich weiß nicht, ob das ganz sicher ist, aber ich hatte noch keine Probleme... Viele Grüße, Chris |
Re: Ganze Klassen über Lan verschicken?
Ok, danke erstmal für die Links.
Ja also ich bin dabei ein Pokerspiel zu programmieren und ohne Netzwerk hätte das recht wenig Sinn. Hab mir das folgendermaßen gedacht: Zwischen den Spielern und den ganzen Klassen, dh zB dem Kartendeck, den Spielerwerten etc. schalte ich einen Server, der Zugriff auf diese Werte hat. Dann wollte ich die Clients per Timer die aktuellen Werte vom Server abrufen lassen und dann auf die Benutzeroberfläche übertragen. Ist doch so möglich oder mach ich das besser anders? Vielleicht brauch ich dazu ja nichtmal die ganzen Klassen verschicken, aber dachte mir das wäre vielleicht am einfachsten. Danke für die Hilfe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz