Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi - Chat (https://www.delphipraxis.net/158861-delphi-chat.html)

luggas 5. Mär 2011 17:12

Delphi - Chat
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute,
ich hab mich hier mal an einen Chat gesetzt und wollte ihn mit Delphi porgrammieren.
Hier mal die Source-Codes

Server

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Sockets;

type
  TForm2 = class(TForm)
    Button1: TButton;
    TcpServer1: TTcpServer;
    Memo1: TMemo;
    Edit1: TEdit;
    Button2: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Edit2: TEdit;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation
  uses unit1;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
Tcpserver1.close;
form2.Close;
form1.Visible:=true;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
Tcpserver1.LocalHost:=edit1.Text;
Tcpserver1.Open;
end;

procedure TForm2.Button3Click(Sender: TObject);
var line2:string;
begin
line2:=edit2.Text;
Tcpserver1.Sendln(line2);
memo1.Lines.Add('Host# '+line2);
end;

procedure TForm2.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
  var line:string;
begin
line:='';
while ClientSocket.Connected
do
begin
line:=ClientSocket.Receiveln();
memo1.Lines.Add('Client# '+line);
end;
end;

end.


Client

Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Sockets, ExtCtrls;

type
  TForm3 = class(TForm)
    Button1: TButton;
    Button3: TButton;
    Edit2: TEdit;
    Memo1: TMemo;
    Panel2: TPanel;
    Panel1: TPanel;
    Edit1: TEdit;
    Button4: TButton;
    TcpClient1: TTcpClient;
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure TcpClient1Connect(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation
  uses unit1;
{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
Tcpclient1.Close;
form3.Close;
form1.Visible:=true;
end;

procedure TForm3.Button3Click(Sender: TObject);
var line1:string;
begin
line1:=edit2.Text;
TcpClient1.Sendln(line1);
memo1.Lines.Add('Client# '+line1);
end;

procedure TForm3.Button4Click(Sender: TObject);
begin
TcpClient1.RemoteHost:=edit1.Text;
TcpClient1.Open;
//TcpClient1.Connect;
end;

procedure TForm3.TcpClient1Connect(Sender: TObject);
var line:string;
begin
line:='';
while TcpClient1.Connected
do
begin
line:=TcpClient1.Receiveln();
memo1.Lines.Add('Host# '+line);
end;
end;

end.

Wenn ich dann mit dem Client auf den Server connecten will bleibt der client hängen.
Beide sind auf bmblocking eingestellt.
Ich hoffe ihr könnt mir weiter helfen.

TDR 12. Mär 2011 17:23

AW: Delphi - Chat
 
Schau dir das Video mal an vllt hilft es dir

Video

Jacques Murell 12. Mär 2011 20:28

AW: Delphi - Chat
 
Nettes Video, da musste Sohnemann mit seinen 15 Jahren aber lange auf die Delphi 2010 Architekt sparen. :mrgreen::mrgreen:

TDR 12. Mär 2011 21:14

AW: Delphi - Chat
 
[nicht zum Thema]
das Video is nich von mir...
(gefunden im I-Net)
[/nicht zum Thema]

DArc 24. Apr 2011 21:25

AW: Delphi - Chat
 
hey, sorry, dass ich hier mal was loswerden will.
ich finde das video persönlich nicht wirklich toll.
er behandelt keine fehler (außer errorcode - aber naja ...), die auftreten könnten; und auch erklärt er nur
anfänger zeugs und nicht wirklich den Client-Server-Chat. unsauber gecoded, keine funktionen sondern einfach nur copy&paste

hinzukommt, dass ich indy persönlich umfangreicher( - dementsprechend vielleicht auch etwas komplizierter - ) finde.

kommt mir so vor, als ob er sich eine demo oder ein tut reingezogen und anschließend ein video davon gemacht hätte
(etwa http://www.informatik-treff.de/mater...chat/chat.html)

ich habe bereits einen chat mit indy in delphi 7 programmiert, habe aber dennoch eine frage

ist es besser, wenn der client eine Message mit Absender-Empfänger-Inhalt abschickt und ...
- der server nach dem Get der Message an alle clients diese Message weitergibt und diese von ihnen ausgewertet wird?
- beim connecten die informationen (also ip, benutzername o.ä.) des clients in einem (dynamischen?) array abgespeichert werden
und bei bedarf, also nach dem Get der Message, ausgelesen werden und die message an den bestimmten client weitergeleitet wird?

hoffe, dass das hier einigermaßen verständlich war

Mfg DArc


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 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