| csyasar | 30.04.2004 - 13:49:14 |
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. ******************************************************************************** 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. | |
| Excalibor | 23.11.2004 - 23:37:16 |
| teşekkürler..................... | |
| csyasar | 27.11.2004 - 00:14:31 |
| rica ederim ne demek :D | |