Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi [solved] TSocket Kommunikation geht nicht (https://www.delphipraxis.net/135243-%5Bsolved%5D-tsocket-kommunikation-geht-nicht.html)

bl4ckb1rd 7. Jun 2009 15:21


[solved] TSocket Kommunikation geht nicht
 
Ich wollte mit den TSocket Komponenten von Delphi 2009 einen Chat schreiben.
Der Server geht prima. Er kann Nachrichten annehmen und diese auch wieder versenden.

Wenn jedoch der Client was verschickt, so sagt der Server zwar er hat was erhalten, aber der Inhalt entspricht nicht dem, was in dem edit1.feld drin stand.

Hier die ganzen code ausschnitte:

Senden Button für Chat (Server und Client sind in einem Programm untergebracht):

Delphi-Quellcode:
procedure TForm1.SendenClick(Sender: TObject);
var
msg : TChat;
I : integer;
begin
if online_modus = 1 then begin
  if online_client = 1 then begin // wenn client on ist
    //msg.name := 'client';
    msg.aktion := 'ch';
    msg.chat := edit1.text;
    edit1.Text := '';
    Client.Socket.SendBuf (msg, SizeOf(msg)); // senden
  end
  else
  if online_server >= 1 then begin // wenn server on ist
    //msg.name := 'server';
    msg.aktion := 'ch';
    msg.chat := edit1.Text;
    edit1.Text := '';
    with Server.Socket do begin
      for I := 0 to ActiveConnections-1 do
        Connections[I].SendBuf (msg, SizeOf(msg))
    end; {with}
  end;
end;

Server empfangen

Delphi-Quellcode:
procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
msg : TChat;
begin
  showmessage('server hat etwas erhalten'); // dies diente dazu, um zu sehen ob der fehler doch evt. am server liegen könnte
 
   if msg.aktion = 'ch' then begin // chat...   // DIESER TEIL WIRD IRGENDWIE NICHT AUSGEFÜLLT
      memo1.lines.add('client' + ': '+msg.chat);
   end;
end;
Der record TChat:

Delphi-Quellcode:
type TChat = Record
    chat : string[255];
    name : string[20];
    aktion : string[20];
end;

Da der Client alles prima empfängt, poste ich den TForm1.ClientRead Part nicht.


Leider seh ich da oben keinen Fehler o.O

Apollonius 7. Jun 2009 15:28

Re: TClientSocket sendet falsch und TServerSocket richtig
 
Du liest msg doch gar nicht ein. Es fehlt ein Socket.ReadBuf(msg, SizeOf(msg)).

bl4ckb1rd 7. Jun 2009 15:31

Re: TClientSocket sendet falsch und TServerSocket richtig
 
:P Habe den Fehler gerade selbst gesehen ^^

Trotzdem danke :P


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.

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