![]() |
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! |
Re: Ganze Klassen über Lan verschicken?
Oh CORBA - meine Lieblings-Middleware (nicht ironisch gemeint), das so was in einem Atemzug und noch an erster Stelle bei Delphi genannt wird...
|
Re: Ganze Klassen über Lan verschicken?
Zitat:
Zurück zum Problem. Ich würde mir hier erst mal auf XML-Basis neue "Formate" definieren welche deine verschiedenen Elemente beinhalten. Je nach dem wie der Server aussehen kann (mit Internetbasieren mit "richtigen" Server oder für Lanparties wo ein PC mal schnell Server übernehmen soll) könnte man auf Serverseite u.U. eine auf SOAP-Basis den Server implementieren. Für Ad-Hoc-Server wäre evtl. ein 08/15 Selbstentwickelter Server auf TCP/IP-Basis besser geeignet der dann für die Verwaltung und verteilung der Daten sorgt. |
Re: Ganze Klassen über Lan verschicken?
Wow, das warn nun einige Begriffe die mir nix gesagt haben ^^
Ähm also weiss nich ob ich das deinem Text jetzt falsche entnommen habe, aber meine Vorstellung war es nur über Lan laufen zu lassen, dh ein PC soll den Server darstellen (der kann doch dann trotzdem auch Client sein, also auch spieln, oder?). Hörte sich für mich nun alles sehr kompliziert an, geht das nicht auch simpler? :-\ Danke für deine Antwort |
Re: Ganze Klassen über Lan verschicken?
Zitat:
Du könntest deine Specs ein wenig genauer umreißen, dann ist es für uns auch einfacher dir zu helfen. Bis jetzt klingt das, was du da vorhast[1] ziemlich nach dem klassischen Fall für .Net-Remoting. [1]Intranet, viele Roundtrips, flexible, objektbasierte Datenstrukturen. |
Re: Ganze Klassen über Lan verschicken?
Gut, also wie gesagt es handelt sich bei dem Projekt um ein Pokerspiel.
Sollte im Netzwerk mit bis zu ~10Spielern spielbar sein. Die Clients erhalten Information vom Server und übertragen sie auf die Benutzeroberfläche. Zu den Informationen gehören Dinge wie: -Spielernamen -Spielergeld -Aktiver Spieler -Bet, Raise... -Blindstatus -natürlich die Karten -und noch ein paar andere Informationen Ich wollte Klassen erstellen, auf die der Server Zugriff hat. Alles was die Clients dann benötigen, wird dann an sie gesand und bei ihnen in Variablen gespeichert. Sind das so genug Informationen? Danke für die Hilfe! |
Re: Ganze Klassen über Lan verschicken?
[Offtopic]
Guck' doch mal ![]() ![]() Ich bin auch bei dem Projekt dabei und wir entwickeln auch gerade ein Pokerspiel (was sogar via Internet spielbar sein wird). Das Projekt ist zur Zeit etwas "eingeschlafen". Vielleicht würde etwas frischer Wind gut tun. (Gemeint ist ein neuer, motivierter Mitarbeiter). Wenn du Interesse hast, frage ich mal unsere Gruppe, ob wir dich aufnehmen können. Wenn du natürlich das ganze alleine machen willst... Auch kein Problem ;) [/Offtopic] |
Re: Ganze Klassen über Lan verschicken?
Sorry, aber so gut sind meine Delphi Kenntnisse noch nicht. Auch wenn ich das sehr interessant finde, denke ich dass es für mich am Anfang besser is ein paar kleinere Projekte selber zu realisieren!
Trotzdem danke für das Angebot und ich bin sehr gespannt auf euer Ergebnis! |
Re: Ganze Klassen über Lan verschicken?
Okay ;)
|
Re: Ganze Klassen über Lan verschicken?
OT
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04: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