unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;
type
TForm1 =
class(TForm)
ClientSocket: TClientSocket;
Nicklbl: TLabel;
Nickname: TEdit;
nickbut: TButton;
chatlog_memo: TMemo;
Nachrichted: TEdit;
sendenbut: TButton;
connectbut: TButton;
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
procedure nickbutClick(Sender: TObject);
procedure connectbutClick(Sender: TObject);
procedure sendenbutClick(Sender: TObject);
procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
nicknamevar:
string;
str:
string;
ip:
String;
MEINEIP:
String;
implementation
{$R *.dfm}
procedure TForm1.nickbutClick(Sender: TObject);
begin
//nickbut heißt unser "Nickname setzen" Button
// NickName heißt unser Edit-Feld
//nicklbl ist der "Nickname" Label
nickbut.Enabled := false;
Nickname.Enabled := false;
nicklbl.Enabled := false;
nicknamevar := nickname.Text;
//Die restlichen Buttons/Memos/Edits aktivieren
chatlog_memo.Enabled := true;
Edit1.Enabled := True;
Connectbut.Enabled := True;
end;
procedure TForm1.sendenbutClick(Sender: TObject);
begin
//sendenbut heißt unser "Senden" Button
//nachrichted heißt unsere "Deine Nachricht..." Box
//chatlog_memo ist unsere "Chat-Log" Memo
if nachrichted.Text = '
/help'
then begin
Chatlog_memo.Lines.Add('
SERVER: Command Listing Started !');
Chatlog_memo.Lines.Add('
/exit : Beende die Sitzung mit dem Partner');
Chatlog_Memo.Lines.Add('
/ip [Address] : Verbinde mit Folgender Client IP');
Chatlog_Memo.Lines.Add('
SERVER: Command Listing Stopped');
end
else begin
try
chatlog_memo.Lines.Add(nicknamevar + '
sagt: ' + nachrichted.Text);
ClientSocket.Socket.SendText(nicknamevar + '
sagt: ' + nachrichted.Text);
except
chatlog_memo.Lines.Add('
Server Error : Verbindung zum Server gescheitert ! entweder blockt eine Firewall den Port oder er ist Belegt oder der Server ist Offline');
ShowMessage('
Error ! Verbindung zum Server gescheitert ! entweder blockt eine Firewall den Port oder er ist Belegt oder der Server ist Offline');
end;
end;
nachrichted.Text := '
';
end;
procedure TForm1.connectbutClick(Sender: TObject);
begin
//connectbut heißt unser "Connect" Button
//EDIT1 heißt unsere "127.0.0.1" Edit-Box
//ClientSocket heißt unser TClientSocket
sendenbut.Enabled := True;
Nachrichted.Enabled := True;
If Edit1.Text = '
Elke'
then
IP := '
192.168.0.7';
If Edit1.Text = '
Michael'
then
IP := '
192.168.0.2';
IF Edit1.Text = '
Nicola'
then
IP := '
192.168.0.98';
IF Edit1.Text = '
Marc'
then
IP := '
192.168.0.3';
ClientSocket.Host := '
192.168.0.3';
ClientSocket.Port := 1994;
//Verbindung aufbauen:
try
ClientSocket.Active := true;
ClientSocket.Socket.SendText('
/ip ' +
IP);
except
chatlog_memo.Lines.Add('
Server Error : Verbindung zum Server gescheitert ! entweder blockt eine Firewall den Port oder er ist Belegt oder der Server ist Offline');
ShowMessage('
Error ! Verbindung zum Server gescheitert ! entweder blockt eine Firewall den Port oder er ist Belegt oder der Server ist Offline');
end;
chatlog_memo.Lines.Delete(1);
Chatlog_memo.Lines.Add('
Herzlich Willkommen in FAM-ICQ Sie sind verbunden mit dem Server 192.168.0.3');
ChatLog_Memo.Lines.Add('
Tippen Sie /help ein um Die Kommandos zu sehen !')
end;
procedure TForm1.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
//in str speichern wir den ankommenden String
//und geben es dann in der memo aus.
str := ClientSocket.Socket.ReceiveText;
If str = '
/exit'
then begin
ShowMessage('
Der Partner hat die verbindung Beendet ... bitte starten sie FAMICQ Neu !');
Form1.Close;
end
else begin
chatlog_memo.Lines.Add(str);
end;
end;
procedure TForm1.ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
//adresselbl ist das Label "Adresse:"
Edit1.Enabled := false;
connectbut.Enabled := false;
ShowMessage('
Sie Wurden Verbunden !');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket.Socket.SendText('
/login' + MEINEIP);
end;
end.