AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Chat mit Indy

Ein Thema von mangaka · begonnen am 28. Apr 2005 · letzter Beitrag vom 29. Apr 2005
Antwort Antwort
mangaka

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

Chat mit Indy

  Alt 28. Apr 2005, 14:38
moin,
erstmal sry, ich weis ihr kennt solche Betreffs schon, aber ich habe schon im Forum gesucht und es hat mir geholfen, da ich noch n anfänger in sachen netzwerk-proggen bin...

mein problem ist folgendes:
ich möchte gern ein chat entwickeln und habe mir auch die indy demo dazu angesehn, aber wirklich schlau wurde ich nicht daraus.
also meine fragen wären dazu nur, wo und wie ich den clients, nachdem diese connected haben, das schicke, was einer von ihnen gesendet hat(~versteht ihr?). ich konnte schon in erfahrung bringen, dass der server sich den client, der sich angemeldet hat, merkt und mithilfe seiner daten ihm was senden kann. aber ich krieg das einfach nicht auf die reihe. könntet ihr mir plz helfen?

thx/mfg
mangaka

ps:arbeite mit indy9 komponenten und habe delphi7pe
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#2

Re: Chat mit Indy

  Alt 28. Apr 2005, 15:50
Mahlzeit.

Chats gab es schon viele. Suche mal nach TClientSocket bzw TServerSocket. Sind sehr beliebte Komponeten. Oder Du kannst es auch mit TCPCilent / TCPServer machen so wie es bei den Demos dabei ist (D7). Aber das Demo solltest Du schon verstehen....
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Chat mit Indy

  Alt 28. Apr 2005, 16:09
ich poste gleich nen kleines projekt (chat)

//edit
http://www.delphipraxis.net/internal...ct.php?t=52936

normal mach ich das ja nicht so, das ich was vorkaue, aber wenns schon sooooo viele immer wieder bauen wollen, dann geb ichs halt mal raus
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
mangaka

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

Re: Chat mit Indy

  Alt 28. Apr 2005, 17:35
mein prob ist ja das ich die winsockets von delphi nicht benutzen kann.
und zu der demo:
ich habe nur soviel verstanden, wie das grob funktioniert.
nur das dumme ist, ich kenne die befehle/eigentschaften nicht, die da angewendet werden. würd ich sie kennen, könnte ich selbst drauf kommen wo ich was inbauen musst.
wie schon gesagt ist mein problem das empfangen(naja eher nicht) und senden an alle clients(das meine ich).

@supermuckl:
ich lade mir grad dein programm runter...


mfg
mangaka
  Mit Zitat antworten Zitat
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
mangaka

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

Re: Chat mit Indy

  Alt 29. Apr 2005, 19:43
kommt schon, ihr könnt mir nicht erzählen, dass ihr keine plan davon habt, also bitte!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 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