Server - Client Sohbet örneği

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Server - Client Sohbet örneği

Mesaj gönderen csyasar »

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.
Kullanıcı avatarı
Excalibor
Üye
Mesajlar: 3
Kayıt: 22 Ağu 2004 03:57

Mesaj gönderen Excalibor »

teşekkürler.....................
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Mesaj gönderen csyasar »

rica ederim ne demek :D
Cevapla