Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Sockets -> SendBuf (https://www.delphipraxis.net/23455-sockets-sendbuf.html)

sAibo 3. Jun 2004 13:54


Sockets -> SendBuf
 
Hallo an alle erstmal, ich hoffe dass Ihr die Frage, die gleich kommt noch nicht Leid seid und euch evtl. nochmal fünf Minuten für mich Zeit nehmt.

Um was gehts es:
Tutorial
genauer um den letzten Punkt: Komunikation mittels SendBuf

Mein Problem:
Ich bekomm den Record auf der anderen Seite einfach nicht mehr raus...

Mein Code :-/
Delphi-Quellcode:

type
  CustomRec = record
    Text: String[20];
    Zahl: byte;
end;

...

procedure TForm1.Button1Click(Sender: TObject);
var
  Rec: CustomRec;
begin
     //Record Werte zugewiesen
     rec.Text:=Edit1.Text;
     rec.Zahl:=StrToInt(Edit2.Text); //Edit2 nur Zahlen eingeben!
     //testen ob der richtige wert zugewiesen worden ist
     Memo1.Lines.Add(rec.Text);
     Memo1.Lines.Add(IntToStr(rec.Zahl)); //funktioniert ja schonmal =)
     //Unser Record wird verschickt!
     Client.Socket.SendBuf(Rec,sizeof(Rec));
end;

procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  Rec: CustomRec;
begin
     //record abholen
     Client.socket.ReceiveBuf(Rec,SizeOf(Rec)); //könnte es hier evtl Server.Socket... heißen? es kommt doch beim Server an... funzt aber auch nicht :(
     //...und im Memofeld ausgeben
     Memo1.Lines.Add(rec.Text);
     Memo1.Lines.Add(IntToStr(rec.Zahl));
     // AUSGABE: erste zeile nichts und zweite zeile Null :-(
end;
*heul* ich weiß garnich was ich noch versuchen soll... so viel zu ändern gibts an den paar Zeilen ja auch nicht... und so langsam ist es echt frustrierend *g* wegen so nem kleinen Problem nich mehr weiter zu kommen....


Zu der Frage warum ich das nich über die Indy Komponente versucht...
die is bei uns in der Schule nicht installiert und wir sind deswegen auf die klasischen Sockets angewiesen...


Ach und die Verbindung und so ist auch alles Richtig hergestellt...

Danke schonmal an alle :) ich hoffe Ihr könnt mir helfen
Vielleicht mag ja auch einer nen paar Zeilen für mich tippen :roll: möchte jetzt endlich weiter machen können =)

Gruß Tobias

Muetze1 3. Jun 2004 14:14

Re: Sockets -> SendBuf
 
Moin!

Mal eine Frage:

Du sendest den Record mit dem Client
Delphi-Quellcode:
Client.Socket.SendBuf(Rec,sizeof(Rec));
und du empfängst den Buffer auch wieder mit dem Client?
Delphi-Quellcode:
Client.socket.ReceiveBuf(Rec,SizeOf(Rec));
?? Das geht nicht. Der Client empfängt nicht die Daten von sich selber wieder, somit musst du das Ereignis OnClientRead vom ServerSocket nehemn...

Sonst ist alles ok.

MfG
Muetze1

Stevie 3. Jun 2004 14:17

Re: Sockets -> SendBuf
 
So funktioniert das bei mir...
Delphi-Quellcode:
procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); <-- Hier wird der Socket übergeben!!!
var
  Rec: CustomRec;
begin
     //record abholen
     Socket.ReceiveBuf(Rec,SizeOf(Rec)); <-- Aus dem übergebenen Socket lesen!!!
     //...und im Memofeld ausgeben
     Memo1.Lines.Add(rec.Text);
     Memo1.Lines.Add(IntToStr(rec.Zahl));
     // AUSGABE: erste zeile nichts und zweite zeile Null :-(
end;

sAibo 3. Jun 2004 14:30

Re: Sockets -> SendBuf
 
öhm ja =)

ich hatte es mal mit
Delphi-Quellcode:
Server.Socket.ReceiveBuf(Rec,SizeOf(Rec));
versucht... aber dass passte irgendwie nich wirklich... einfach server. weglassen... wer kommt schon auf so ne idee *g*

vielen dank nochmal, bin halt mal wieder an der eigenen dummheit gescheitert =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 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