Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Uzaktan Sohbet Programı Yapımı
#9
(11-07-2017, Saat: 14:41)Halil Han BADEM Adlı Kullanıcıdan Alıntı: İyi günler sayın forum üyeleri, bugün elimden geldiğince şu herkesin takıldığı chatleşme yani sohbet aracı uygulamasını Delphi'de nasıl yapacağımızı anlatayım. Biliyorum ki yeni başlayanlarımız genelde local bölümde işi hallediyor lakin uzaktan bir IP adres ile bağlanmayı bir türlü beceremiyor. İlk olarak yapacağımız adımları anlatayım.

  1. Modem üzerinden port açmak.
  2. Server App oluşturmak.
  3. Client App oluşturmak.
 
Idea  Modem Üzerinden Port Açma

 İlk olarak modem yani yönlendirici üzerinden nasıl port açabileceğimize bakalım.
  • Varsayılan olan 192.168.1.1 adresinden yönlendirici login sayfasına gelin.
  • Kullanıcı adı ve şifresini girdikten sonra önünüze ana sayfa gelecektir.
  • Her modemde ayrı bir arayüz olduğu için kendi modem üzerinden gösterdiğimce, umarım anlaşılır olur.
Exclamation  Modem Marka: ZyXEL VMG3312-B10B


    İlk olarak nat seçeneğini bulup girelim;

aG1g4d.png


  Bu bölüme giriş yaptıktan sonra önümüze port yönlendirme ekranı gelecek. Yeni Kural butonuna tıklayıp resimdeki ayarları yapınız.

Exclamation  NOT: 1063 ben seçtim bunu değiştirebilirsiniz, tabi 80,21 gibi sayıları dışında.



aG1QZg.png




  Bu ayarlamaları yaptıktan sonra işlemimiz tamamlanmıştır. Şimdi Delphi'ye geçelim...


Idea  Server App Oluşturma

  Portumuzun tam olarak aktifleşmesi için bir server app oluşturmamız gerekecektir. Bu nedenle bize 1 adet ServerSocket bileşeni gerek.

NOT: Bileşeni olmayanlar Indy ile de işlemleri gerçekleştirebilirler, ama yine de eklemek isterseniz bu adımları izleyiniz.

Şimdi bizim port açma ve kullanma işimiz bitti, şimdi sohbet bölümüne geleceğiz. İlk olarak yapmamız gereken formumuza 1 adet edit 2 adet buton(Biri sunucu aktifleştirmesinde biri mesaj gönderiminde) ve 1 adet memo ekleyelim.

  Exclamation  Bu kodu sunucu aktifleştirme butonuna yazınız;

ServerSocket.Port := 1063;

ServerSocket.Active := True;

Exclamation Bu kodlar bizim portumuzun program üzerinden kullanılmasını sağlayacak, programı çalıştırdıktan sonra bu sitede port kontrolü yaparsanız açık olduğunu göreceksinizdir.

 Şimdi ise gelelim eğer bir Client'ten mesaj gelirse onu nasıl okuyacağımıza. OnClientRead olayına kodlarımızı yazalım;

procedure TServerApp.ServerClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Client Mesajı: '+Socket.ReceiveText);
end;

 Bu kod sayesinde yazıları okuyabiliriz. 


 Şimdi ise gelelim şu Client'lere mesaj atmaya. Tabi burda biraz algoritmik olarak düşünmemiz lazım. Çünkü kullanacağımız kodun yapısı tek bir Client'e mesaj gönderimi için uygun. Biz bunu biraz düzenleyelim.

 Mesaj için koyduğumuz butona şu kodları ekleyelim;

procedure TServerApp.Button2Click(Sender: TObject);
var
I: Integer;
begin
 for I := 0 to Server.Socket.ActiveConnections - 1 do
begin
Server.Socket.Connections[I].SendText(Edit1.Text);
end;

Memo1.Lines.Add('Mesajınız: '+Edit1.Text);
end;

 Bu for döngüsü ile tek tek bağlanan Client'lere mesajlarımızı gönderebiliriz. Şimdi Server ile işimiz bitti Client meselesine gelelim.


Idea  Client App Oluşturma

  Bu Client sayesinde sunucuya bağlanıp mesajlarımızı atabiliriz. Birden fazla Client ile çoklu görüşmeler yapılabilir. Formumuza bir adet ClientSocket bileşenini ekleyelim. Hemen sonrasında 3 adet edit (Biri sunucuIP biri sunucuPORT biri Mesaj bölümü olmak üzere) 1 memo ve 2 adet buton(Biri sunucuya bağlanma biri mesaj gönderme) ekleyelim.

Bir butonumuzun onClick olayına sunucuya bağlanma kodlarını yazalım;

procedure TformClient.Button2Click(Sender: TObject);
begin
ClientSocket1.Host := Edit2.Text;
ClientSocket1.Port := StrToInt(Edit3.Text);
ClientSocket1.Active := True;
end;

 Bunu halletikten sonra ise sunucuya mesaj gönderimini nasıl yapacağımıza bakalım. Mesaj gönderme butonumuzun OnClick olayına aşağıda ki kodları yazalım;

Client.Socket.SendText(Edit1.Text);

Memo1.Lines.Add('Mesajınız: '+Edit1.Text);

 Bu kodlar sayesinde sunucuya mesajımızı gönderebileceğiz. Pekiyi sunucudan gelen mesajı nasıl okuyacağız?

Bunun için ise ClientSocket'imizin onRead olayına şu kodları yazalım;

 
Memo1.Lines.Add('Sunucu Mesajı: '+Socket.ReceiveText);

Bu kod ile de sunucumuzdan gelen mesajları görebiliriz. 

Exclamation  Şimdi bu yazdığım adımları uyguladığımızda sonucu görelim..


4MGyJA.png


  Gördüğümüz gibi sağlıklı bir biçimde çalışıyor. İstediğiniz (İsterseniz Çin'de bile deneyin  Big Grin )   yerde mesajınız iletilecektir. 

Kaynak kodlarını GitHub linkinden bulabilirsiniz.

YENİ BAŞLAYANLAR İÇİN NOT:  ClientSocket ve ServerSocket isimlerini "Client" ve "Server" olarak kısalttım, bu yüzden kodlama yaparken "Client" ve "Server" olarak yazdım.


Saygılarımla,
İyi Çalışmalar.

Elinize Sağlık çok güzel bir çalışma olmuş, bu client i android e çevirmek istiyorum bunun kolay bir yolu var mıdır?
Cevapla


Bu Konudaki Yorumlar
Uzaktan Sohbet Programı Yapımı - Yazar: Halil Han BADEM - 11-07-2017, Saat: 14:41
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: TescilsizUzman - 11-07-2017, Saat: 15:09
Uzaktan Sohbet Programı Yapımı - Yazar: SimaWB - 11-07-2017, Saat: 16:22
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: Halil Han BADEM - 11-07-2017, Saat: 17:24
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: masteryoda - 11-07-2017, Saat: 21:46
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: Halil Han BADEM - 11-07-2017, Saat: 21:59
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: shooterman - 17-08-2023, Saat: 15:08
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: Halil Han BADEM - 17-08-2023, Saat: 15:25
Uzaktan Sohbet Programı Yapımı - Yazar: dilo - 11-07-2017, Saat: 21:41
Uzaktan Sohbet Programı Yapımı - Yazar: SimaWB - 11-07-2017, Saat: 22:40
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: alitiras - 15-08-2023, Saat: 10:56
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: Halil Han BADEM - 15-08-2023, Saat: 11:28
Cvp: Uzaktan Sohbet Programı Yapımı - Yazar: Mesut - 16-08-2023, Saat: 17:49

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi + Python, Makro yapımı yardım eroniko 0 44 3 saat önce
Son Yorum: eroniko
  Pazaryerleri Muhasebe Programı Entegrasyonu bünyamin68 2 347 22-02-2024, Saat: 15:51
Son Yorum: ahmet6513
  radio grup ile cevap anahtari yapimi. sadikacar60 2 276 31-01-2024, Saat: 13:22
Son Yorum: sadikacar60
  Borsa takip programı(Yeniyim) rumuztr@hotmail.com 8 891 29-12-2023, Saat: 17:36
Son Yorum: rumuztr@hotmail.com
  windows powershell pipe uzaktan yönetim masteryoda 4 3.535 28-05-2023, Saat: 05:31
Son Yorum: emozgun



Konuyu Okuyanlar: 1 Ziyaretçi