unit Chat_U;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp, XPMan, Spin, Buttons;
type
TForm1 =
class(TForm)
ClientSocket1: TClientSocket;
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
Label1: TLabel;
Port: TSpinEdit;
//hab ich urprünglich zum Port-zuweisen genommen
Label2: TLabel;
//aber als es nicht ging, hab ich nen festen Port genommen
Nickname: TEdit;
Label3: TLabel;
SpeedButton1: TSpeedButton;
ServerSocket1: TServerSocket;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure PortChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Port:=6531;
//Ports und Adresse zuweisen
ClientSocket1.Port:=6531;
ClientSocket1.Host:='
127.0.0.1';
ServerSocket1.Open;
ClientSocket1.Open;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text<>'
')
and (Nickname.Text<>'
')
then //wenn keins der Felder leer ist, dann
begin //Username und Nachricht übermitteln
ClientSocket1.Socket.SendText(Nickname.Text+'
: '+Edit1.Text);
Edit1.Text:='
';
end
else
ShowMessage('
Bitte alle Felder ausfüllen!');
//sonst Nachricht ausgeben
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var Nachricht:
string;
begin
Nachricht:=ServerSocket1.Socket.ReceiveText;
Memo1.Lines.Add(Nachricht);
end;
procedure TForm1.PortChange(Sender: TObject);
begin
ClientSocket1.Socket.SendText('
Dieser Port scheint zu funktionieren');
//wenn der Wert vom SpinEdit geändert wird
end;
//soll eine Bestätigungsnachricht geschick werden
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
ServerSocket1.Active:=true;
//Verbindungsbutton und übermitteln, dass jemand dem Chat beitritt
Clientsocket1.Active:=true;
sleep(2000);
ClientSocket1.Socket.SendText(Nickname.Text+'
hat den Chat betreten!');
end;
end.