Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:52

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: WinSocket - Problem...
BeitragVerfasst: Do Mai 13, 2004 22:11 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
aalso, ich hab folgendes Problem:

ich baue eine Verbindung zwischen einem Clientsocket und einem Serversocket auf...

dann habe ich ein record was so aussieht:
Code:
  1. type TNetworkpaket = record
  2.  text:string[20];
  3.  data: TSpieler;
  4. end;

(ist noch nicht endgültig, sollte aber erstmal zum testen dienen)

wenn ich nun z.B: vom Client an den Server die DAten so schicke:
Code:
  1.  Paket.text:='CSpieler';
  2.  Paket.data:=SBS.Spieler;
  3.  CSocket.Socket.SendBuf(Paket,sizeof(Paket));


und so empfange:

Code:
  1.  Socket.ReceiveBuf(paket,socket.ReceiveLength);
  2. tempstring:=paket.text;
  3. tempspieler:=paket.spieler;


der Text wird richtig übertragen, die Spielerklasse aber nicht...
woran kann das liegen?? (an einem dynamischen array, was ich da drin habe... :? )
im Anhang mal die WErte die z.B. ankommen (es wurden "richtige" Werte abgeschickt, z.B. nicht so ein kryptischer Name)


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 22:23 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Wenn TSpieler eine Klasse ist, dann ist data ein Zeiger auf das Object. Es wird dann auch nur der Zeiger kopiert und der ist dann natürlich auf dem anderen Rechnern nicht gültig. Dynamische Arrays sind auch Zeiger und können so auch nicht kopiert werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 22:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
klingt plausibel... das dynamische array brauche ich nicht unbedingt, von daher ist der Inhalt von dem egal, solange der REst richtig übertragen werden würde...
kann ich die Klasse irgendwie selber übertragen (nicht als zeiger) oder muss ich jeden Wert einzeln schicken (bzw ein record anlegen, der die gleichen Variablen enthält, den ich dann verschicke)

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 22:37 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ein Record ist die beste Möglichkeit. Allerdings darf der dann keine dynamischen Arrays oder lange Strings enthalten, weil die Felder dann falsch überschrieben würden und nicht mehr richtig verwaltet werden könnten. Eine andere Idee ist die published Properties einer Klasse mit den Funktionen aus der Unit typinfo auszulesen und zu versenden. Dann kann man alles Objekte beim Versenden gleich behandeln.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 23:05 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
klappt mit einem REcord wunderbar, danke sehr :)

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]