AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi eine Frage zu dyn . Array im Netzwerk
Thema durchsuchen
Ansicht
Themen-Optionen

eine Frage zu dyn . Array im Netzwerk

Ein Thema von SIn · begonnen am 14. Apr 2004 · letzter Beitrag vom 14. Apr 2004
Antwort Antwort
SIn

Registriert seit: 13. Apr 2004
14 Beiträge
 
#1

eine Frage zu dyn . Array im Netzwerk

  Alt 14. Apr 2004, 19:02
Ich möchte einen client und einen Server schreiben , die beide ein gleich großes dyn. Array haben.
Nach dem das Passiert ist, soll der server den Inhalt seines dyn. array an den client verschicken.

Delphi-Quellcode:
////////////////////////client///////////////////////////////////
type
  Datenpack2 = Record
  Chatchannels : Array of String[20];
  index2:integer;
end;
...
var rec:datenpack2

 
   clientsocket2.Socket.ReceiveBuf(rec,sizeof(rec));
   setlength(rec.Chatchannels,rec.index2);
   clientsocket2.Socket.ReceiveBuf(rec,sizeof(rec));
                                         
   for i:=0 to high(rec.Chatchannels)-1 do
   memo1.lines.Add(rec.Chatchannels[i]);


//////////server/////////////////////////
rec:datenpack2;




socket.ReceiveBuf(rec,sizeof(rec));
                                                
  rec.index2:=anZchat;// ist größe des arrays was beide haben sollen
  for i := 0 to initServer.Socket.ActiveConnections-1 do
     initserver.Socket.Connections[i].SendBuf(rec,sizeof(rec));
  

  setlength(rec.Chatchannels,anZchat);/// setzt sein array auf die gleiche größe
  log.Lines.add('Eingehende Verbindung');

  for j:= 0 to high(rec.Chatchannels)-1 do
    rec.Chatchannels[j]:=Chatliste[j];/////übergibt seinen Inhalt an das dynarray

  for k := 0 to initserver.Socket.activeConnections-1 do // verschickt es nun wieder erneut
     initserver.Socket.Connections[k].SendBuf(rec,sizeof(rec));
Das Programm stürzt dabei immer ab , und wir wissen nicht warum.
Da ich und meine Gruppe blutige Anfänger auf diesem Gebiet sind , hoffen wir hier Hilfe zu finden
Danke im Voraus
mfg SIn

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

Re: eine Frage zu dyn . Array im Netzwerk

  Alt 14. Apr 2004, 19:59
SizeOf(rec) ergibt 8, da ChatChannels nur ein Pointer auf das Array ist. Ihr übertragt somit also nur diesen Pointer, aber nicht den Inhalt des Arrays.

Delphi-Quellcode:
type
  TChatChannel = string[20];
  TDatenPack = record
     ChatChannels: array of TChatChannel;
     Index2: Integer;
  end;

procedure SaveDatenPackToStream(Pack: TDatenPack; AStream: TStream);
begin
  AStream.Write(Pack.Index2, SizeOf(Integer));
  AStream.Write(Pack.ChatChannels[0], SizeOf(TChatChannel) * Pack.Index2);
end;

procedure LoadDatenPackFromStream(AStream: TStream): TDatenPack;
begin
  AStream.Read(Result.Index2, SizeOf(Integer));
  SetLength(Result.ChatChannels, Result.Index2);
  AStream.Read(Result.ChatChannels[0], SizeOf(TChatChannel) * Result.Index2);
end;
MfG,
Tryer
  Mit Zitat antworten Zitat
SIn

Registriert seit: 13. Apr 2004
14 Beiträge
 
#3

Re: eine Frage zu dyn . Array im Netzwerk

  Alt 14. Apr 2004, 22:43
Danke dir.
mfg Sin
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:46 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