Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Ganze Klassen über Lan verschicken? (https://www.delphipraxis.net/89342-ganze-klassen-ueber-lan-verschicken.html)

.chicken 29. Mär 2007 19:30


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:
type
  TDeck = class
   .......
  end;

........

var
  Deck: TDeck;

........

  Deck := TDeck.Create;
So und könnte ich zB dieses komplette Deck per Lan übertragen? Hoffe ihr versteht was ich mein!

mkinzler 29. Mär 2007 19:37

Re: Ganze Klassen über Lan verschicken?
 
Corba, DCOM, Midas, ...

.chicken 29. Mär 2007 19:50

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...

fLaSh11 29. Mär 2007 19:55

Re: Ganze Klassen über Lan verschicken?
 
wie wärs mit einem WinSocket.SendBuf?

.chicken 29. Mär 2007 19:59

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?

mkinzler 29. Mär 2007 19:59

Re: Ganze Klassen über Lan verschicken?
 
http://www.drbob42.com/examines/examin06.htm
http://www.blong.com/Conferences/DCon99/Corba/Corba.htm
http://www.delphi-online.at/
http://www.openitpower.com/wenzhang/97/6962_1.html
http://www.millennium-group.ru/index...t_id/30/level/

Bernhard Geyer 29. Mär 2007 20:05

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.

r2c2 29. Mär 2007 20:07

Re: Ganze Klassen über Lan verschicken?
 
Zitat:

Zitat von fLaSh11
wie wärs mit einem WinSocket.SendBuf?

WIrd IMHO nicht funktionieren, da du Klassen nicht dereferenzieren kannst. Wir machen hier doch kein C++...

Ums Serialisieren kommt man also kaum drum herum. Verschiedene Technologieen wurden da ja bereits genannt...

mfg

Christian

CK_CK 29. Mär 2007 20:10

Re: Ganze Klassen über Lan verschicken?
 
Hi!
Also bis jetzt bin ich hiermit ganz gut gefahren:
Delphi-Quellcode:
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;
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.

Ich weiß nicht, ob das ganz sicher ist, aber ich hatte noch keine Probleme...

Viele Grüße,
Chris

.chicken 29. Mär 2007 20:12

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 12:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz