Thema: Delphi - Chat

Einzelnen Beitrag anzeigen

luggas

Registriert seit: 5. Mär 2011
1 Beiträge
 
#1

Delphi - Chat

  Alt 5. Mär 2011, 17:12
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.
Angehängte Dateien
Dateityp: 7z Chat.7z (299,9 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat