AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ganze Klassen über Lan verschicken?
Thema durchsuchen
Ansicht
Themen-Optionen

Ganze Klassen über Lan verschicken?

Ein Thema von .chicken · begonnen am 29. Mär 2007 · letzter Beitrag vom 30. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#1

Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 19:30
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!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 19:37
Corba, DCOM, Midas, ...
Markus Kinzler
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#3

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 19:50
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...
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#4

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 19:55
wie wärs mit einem WinSocket.SendBuf?
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#5

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 19:59
Ü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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 19:59
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/
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 20:05
Ü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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#8

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 20:07
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
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 30. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 20:10
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
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#10

Re: Ganze Klassen über Lan verschicken?

  Alt 29. Mär 2007, 20:12
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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr.
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