Einzelnen Beitrag anzeigen

bl4ckb1rd

Registriert seit: 3. Okt 2008
53 Beiträge
 
#1

[solved] TSocket Kommunikation geht nicht

  Alt 7. Jun 2009, 15:21
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 = 'chthen 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
  Mit Zitat antworten Zitat