Einzelnen Beitrag anzeigen

Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

[Indy] Programm hängt sich bei ReadBuffer auf

  Alt 20. Feb 2005, 13:45
Hi,

bin ma wieder an nem Chat dran (ich weiß, es gibt viele^^).

Mein Source(client):

Delphi-Quellcode:
procedure Tfmain.TimerTimer(Sender: TObject);
var
  Msg: TMessageRecord;
begin
  if Client.Connected then
  begin
    Client.ReadBuffer(Msg, SizeOf(Msg)); // << Da gehts nimmer weiter

    if Trim(Msg.Msg) <> 'then
    begin
      reChat.Lines.Add(Msg.From + ': ' + Msg.Msg);
    end;
  end;
end;
Intervall vom Timer ist 1.

Source(server):
Delphi-Quellcode:
procedure Tfmain.ServerExecute(AThread: TIdPeerThread);
var
  Msg: TMessageRecord;
begin
  AThread.Connection.ReadBuffer(Msg, SizeOf(Msg));

  Clients.Broadcast(Msg);
end;
TMessageRecord:

Delphi-Quellcode:
TMessageRecord = record
    From: ShortString;
    Msg: WideString;
    Color: Integer;
    SysCommand: Boolean;
  end;
Procedure Broadcast:
Delphi-Quellcode:
procedure TClients.Broadcast(MessageRecord: TMessageRecord);
var
  i: Byte;
begin
  for i := 1 to MAX_CLIENTS do
  begin
    try
      if ClArray[i] <> nil then
        ClArray[i].Connection.WriteBuffer(MessageRecord, SizeOf(MessageRecord),
          True);
    except
    end;
  end;
end;
(TClients ist von jfheins)


Warum geht das an der markierten Stelle nicht mehr weiter? Da bleibt der einfach stehen.

(Verwende Indy9)
  Mit Zitat antworten Zitat