Kod: Tümünü seç
unit Server1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Psock, NMFtp, ScktComp, FileCtrl;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
ServerSocket1: TServerSocket;
Edit1: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := ServerSocket1.Socket.LocalHost;
Edit1.Text := '127.0.0.1';
Edit3.Text := '455';
Edit5.Text :='Baglidegil';
{Form oluştuğunda Sunucunun bulunduğu makinenin adresini yada adını Edit1.Text� e aktarır, Edit5.Text� e �bağlı değil� bilgisini aktarıt}
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit5.Text:='Baglidegil';
{istemci ile kurulan bağlantı kesilirse Edit5.Text� e �Bağlı değil� bilgisini aktarır}
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit5.Text:='Baglaniliyor';
{İstemci ile bağlantı kurulmaya bağlanıldığında Edit5.Text� e � Bağlanılıyor� bilgisini aktarır}
end;
procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit5.Text:='Bagli';
{İstemci ile bağlantı kurulduğunda (Sorun meydana gelmediğinde), Edit5.Text� e � Bağli� bilgisini aktarır}
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit6.Text:=Socket.ReceiveText;
{istemciden bir bir mesaj alındığında, alınan mesajı (Socket.ReceiveText değişkeninde saklı) Edit6.Text� e aktarır.}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{Eğer Edit5.Text� in değeri �Bagli� ise yani bağlantı var ise ( yalnız bağlantı kurulduğunda Edit5.Text, �Bagli� bilgisine eşit oluyor}
if Edit5.Text='Bagli' Then
Begin
ServerSocket1.Socket.Connections[0].SendText(Edit4.Text);
{Sunucuya (bulunduğumuz makine) yapılan ilk bağlantıya (0), Edit4.Text� deki bilgiyi gönderir }
End;
Edit4.Clear;
{Bilgi gönderildiği için Edit4� ün içi temizlenir}
end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
{Edit3 değiştiğinde(port numarası değiştiğinde)}
ServerSocket1.Active:=False;
{Kurulan Socket kapatılır(Bağlantı kesilir) }
ServerSocket1.Port:=StrToint(Edit3.Text);
{Socket üzerindeki bağlantı kurulacak port� un numarası Edit3 e girilen Port numarası ile değiştirilir.}
ServerSocket1.Active:=True;
{Socket tekrar kurulur(Bağlantı isteği için beklenilir)}
end;
procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 Then
Button1Click(Sender);
end;
end.
Kod: Tümünü seç
unit Client1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Psock, NMFtp, ScktComp;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ClientSocket1: TClientSocket;
procedure ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure Button2Click(Sender: TObject);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit4.Text:=(Socket.RemoteHost+'Adresine Bağlanılıyor');
{Sunucu ile bağlantı kurulmaya çalışılırken, Edit4.Text� e �-Sunucu Adı- Adresine Bağlanılıyor� bilgisini aktarır.}
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit4.Text:=(Socket.RemoteHost+' Adresine Bağlanıldı');
{Sunucu ile bağlantı kurulduğunda, Edit4.Text� e �-Sunucu Adı- Adresine Bağlanıldı� bilgisini aktarır.}
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit4.Text:=(Socket.RemoteHost+' Adresinden Bağlantı kesildi.');
{Sunucu ile bağlantı kesildiğinde, Edit4.Text� e �-Sunucu Adı- Adresinden Bağlantı kesildi.� bilgisini aktarır.}
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Edit4.Text:=(Socket.RemoteHost+'Bağlanılamıyor.');
{Sunucu ile kurulan bağlantı da bir sorun meydana gelirse, Edit4.Text� e �-Sunucu Adı- Bağlanılamıyor� bilgisini aktarır.}
ErrorCode:=0; {�ErrorCode� her hataya göre farklı değer alır. Hata yok ise �0� dır}
{Programın çalışma anında hatadan dolayı kesilmemesi için �ErrorCode�, �0� a eşitlenir}
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
{Button2 ye tıklandığında Edit5.Text� in değerini Kurulan socket bağlantısı üzerinden karşı makineye gönderir.}
ClientSocket1.Socket.SendText(Edit5.Text);
Edit5.Clear;
{Edit5� deki bilgi gönderildikten sonra Edit5� in içi temizlenir}
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
{Socket Bağlantısı üzerinden, karşı bilgisayardan bilgi alınmışsa}
Edit2.Text:=(Socket.ReceiveText);
{Alınan bilgiyi Edit2.Text� e aktarır.}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{Button1� e tıklandığında(Bağlan� a)}
{Socket Bağlantısını kes}
ClientSocket1.Active:=False;
{Bağlanılacak makine adresi olarak, Edit.Text� deki bilgiyi kullan}
ClientSocket1.Host:=Edit1.Text;
{Port numarası olarak, Edit3.Text� deki bilgiyi integer� e çevir kullan}
ClientSocket1.Port:=StrToInt(Edit3.Text);
{Bağlantıyı tekrar kurmaya çalış(Sorun meydana gelmez ise bağlantı kurulur)}
ClientSocket1.Active:=True;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
{Button3� e tıklandığında(Kes� e)}
if ClientSocket1.Active=True Then ClientSocket1.Active:=False;
{Socket Bağlansı Kurulu ise bağlantıyı kes}
end;
procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
Button2Click(Sender);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := '127.0.0.1';
Edit3.Text := '455';
end;
end.