Thema: Delphi Chat mit Indy

Einzelnen Beitrag anzeigen

mangaka

Registriert seit: 9. Apr 2005
44 Beiträge
 
Delphi 7 Personal
 
#5

Re: Chat mit Indy

  Alt 29. Apr 2005, 17:25
So habe jetzt ein bissl weiter gearbeitet und weis einfach nicht mehr weiter hier die codes vom client und server:
Client:
Code:
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit2.Enabled := false;
Button1.Enabled := false;

Edit1.Enabled := false;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  IdTCPClient1.Host := Edit3.Text;
  IdTCPClient1.Port := 9099;
  IdTCPClient1.Connect; // add a timeout here if you wish, eg: Connect(3000) = timeout after 3 seconds.
  Button2.Enabled := false;
  Edit3.Enabled := false;

  Edit2.Enabled := true;
  Button1.Enabled := true;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then
    Begin
      if edit1.Text <> '' then
        Begin
          IdTCPClient1.WriteLn(edit1.text);
          edit1.text := '';
        End;
    End;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Enabled := false;
Button1.Enabled := false;
Edit1.Enabled := true;
end;

procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
Memo1.Lines.Add(IdTCPClient1.ReadLn);
end;

end.
server:
Code:
var
  Form1: TForm1;
  clients: TList;

implementation

{$R *.dfm}

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
broadcast('hallo');
clients.Add(athread);
end;

procedure TForm1.broadcast(msg:string);
var
i:integer;
begin
for i := 0 to clients.Count -1 do begin
  TidPeerThread(clients.Items[i]).Connection.WriteLn(msg);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Binding : TIdSocketHandle;
begin
  IdTCPServer1.Bindings.Clear;
  Binding := IdTCPServer1.Bindings.Add;
  Binding.IP := idIPWatch1.LocalIP;
  Binding.Port := 9099;
  IDTCPServer1.Active := true;
end;

end.
wenn ich connecte will ich das der server mir hallo schickt, das soll der client lesen und dann in die memo einfügen. doch alles was passiert ist, dass eine fehler meldung aufpoppt mit dem folgendem inhalt:
Connection closed Gracefully

könnt ihr mir bitte weiterhelfen, ich habe echt kein plan mehr was ich tun soll...obwohl ich glaube das die antwort ein kinderspiel ist T_T

und wenn wir schonma dabei sind, wo muss ich was einfügen, dass der server eine message, die er empfangen hat, sendet? in: IdTCPServer1Exception???

mfg
mangaka
  Mit Zitat antworten Zitat