vb.netvb.net

Merhaba arkadaşlar kodlama yol da öğrenilen bir dünyadır. Bu yüzden sizler de her gün yeni uygulamalar denemelisiniz. Bugün sizlere Visual Basic ile chat programı yapım örneğiniz aktaracağız. Visual basic ile chat programı nasıl yapılır? Ne işe yarar? Programın yapım aşamaları nasıldır? Şeklindeki sorularınızın cevabını bu içeriğimiz de bulabilirsiniz.

Visual Basic ile Chat Programı Yapım Örneği
Visual Studio Görseli

Kullanım Amacı

Bu uygulamamızın bir çok kullanım amacı olabilir. En başta 2 veya daha fazla arkadaşınız ile mesajlaşabilirsiniz. Ya da atölye de derste bir arkadaşınız ile bunu kullanırsınız ve içerisine küçük bir virüs atarak onu korkutabilen bir şaka yapabilirsiniz. Bir veri tabanı bağlantısı ile kocaman bir chat programı olabilecek bu uygulamamız küçük çaplı bir örnektir sizler isterseniz bu örneği geliştirebilirsiniz.

Kod Alanı

Öncelikle bu uygulamamızın forum alanının tasarımını siz site ziyaretçilerimize bırakıyoruz. Bunun iki nedeni var ilk olarak kodlama metnini kavrama ve ne kullanılacağını anlama. İkincisi ise sizin tasarım düşünsel sisteminiz gelişmesidir. Evet bu kodlama metnimizin aşamalarını sizler ile teker teker paylaşacağız. İşte sırası ile aşamalar şöyledir:
1) Formumuz da bulunan bir adet bağlan butonu bulunmaktadır. İlk işlemimizi bağlan butonuna basıldığı zaman gerçekleştireceğiz.
2) Bağlan butonumuzun içerisine uzakmakine isimli bir değişken ataması yapıyoruz. Bunun nedeni adından da anlaşılacağı gibi gerçekleştireceğimiz bağlantı işlemlerini buradan gerçekleştirmemizdir.
3) Bağlan butonunda bir başka işlemimiz ise Winsock nesnemize isim vermek ve bu buton aktif ile bu nesnemizi pasif hale getirmektedir.
4) Bağlan butonunda ki bir başka işlemimiz ise kullanıcının uzaktan makineye bağlanırken sorması gereken bilgiler için bir inputbox açmak olacaktır. Bir if-else komutu kullanarak kullanıcı boş geçerse uyarıyoruz. Eğer kullanıcı doğru bir uzak makine alanı yazarsa daha önceden belirlediğimiz “1981” adlı portumuzdan kullanıcıyı bağlıyoruz.
5) Bir sonraki aşamamız bekle butonu ile ilgili oluyor. Bekle butonuna basıldığı zaman Winsock için yerel portumuzu “1981” olarak belirleme komutu veriyoruz. Komuta gelen adımları dinlemeye geçiyoruz. Ardından ilgili label e başka bir kullanıcıyı beklediğimize dair “Sohbet için Uzak Kullanıcı Bekleniyor” yazdırıyoruz.
6) Bir sonraki aşamamız ise gönder butonu ile ilgilidir. Bu buton da kısaca yazı gönderme alanını tanımlıyoruz. İf-else komutunu kullanarak daha önceden belirlediğimiz nick ve kullanıcı tanımlı ise
yazdığımız metinin görülmesini sağlıyoruz. Eğer değilse kullanıcıyı uyaran kısa bir mesaj gönderiyoruz.
7) Bir sonraki aşamamız kes butonu ile ilgili. Bu butona basıldığı anda bağlantımızı kesiyoruz. Bunu da Winsock u durdurarak gerçekleştiriyoruz. Bağlantıyı kestiğimizi de ilgili labelle belirtiyoruz.
8) Bu aşamamız da ise Wincoskun ne yapması gerektiğini belirliyoruz. Bağlantı kurulduğun da hangi uzaktan makineye bağlandığını ilgili label e atıyoruz.
9) Bir sonraki aşama olarak da bir bağlantı isteği geldiğin de neler yapacağımızı belirliyoruz. İlk önce winsockumuz kapalı değilse onu kapatıyoruz.  İstersek gelen isteği kabul ediyoruz. Kabul edildiğinze dair bilgiyi ilgili label e aktarıyoruz.
10) Bir sonraki aşama uygulamamızın kalbi olan veri aktarımı aşamasıdır.  String bir değişken tanımlıyoruz. Winsockumuza gelen veriyi bu alanımızın içerisine alıyoruz. Gelen veriyi yazı alanımıza ekliyoruz. Gelen mesajları görebilmemiz için.
11) Bir sonraki aşamamız ise bir hata oluştuğunda ilgili label e hatayı belirtmesi gereken kodları yazıyoruz.
12) Son aşama olarak da yazı alanımıza yeni veri geldiği zaman en görülen yazı onun olmasını sağlıyoruz. Yani güncel olanı üstte tutuyoruz.
Bu 12 aşamalı bir nebze uzun olan kod metnimizin anlatımı kısaca böyledir. İşte kod metnimiz ise şu şekildedir:
Private Sub Baglan_Click() 
Dim UzakMakine 
W1.Close 
UzakMakine = InputBox("Uzak makine ip yada Dns bilgisini girin", "Uzak makine", "127.0.0.1") 
If UzakMakine = "" Then 
Durum = "Uzak Makinesi Tanımı Yanlış" 
Exit Sub 
Else 
W1.Connect UzakMakine, 1981 
End If 
End Sub

Private Sub Bekle_Click() 
W1.LocalPort = 1981 
W1.Listen 
Durum = "Sohbet için Uzak Kullanıcı Bekleniyor ..." 
End Sub

Private Sub Gonder_KeyPress(KeyAscii As Integer) 
If KeyAscii = 13 Then 
W1.SendData "<" + Lakap + ">" + Gonder 
YaziAlani = YaziAlani + "<" + Lakap + ">" + Gonder + Chr(13) + Chr(10) 
Gonder = "" 
Else 
Durum = "metin alanı boş" 
Exit Sub 
End If 
End Sub

Private Sub Kes_Click() 
Durum = "Bağlantıyı Kestiniz" 
W1.Close 
End Sub

Private Sub W1_Connect() 
Durum = "Bağlantı Kuruldu -> " + W1.RemoteHostIP 
End Sub

Private Sub W1_ConnectionRequest(ByVal requestID As Long) 
If W1.State <> sckClosed Then W1.Close 
W1.Accept requestID 
Durum = "Bağlantı Alındı" 
End Sub

Private Sub W1_DataArrival(ByVal bytesTotal As Long) 
Dim Gelen As String 
W1.GetData Gelen 
YaziAlani = YaziAlani + Gelen + Chr(13) + Chr(10) 
End Sub

Private Sub W1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Durum = "Bir Hata Oluştu" 
End Sub

Private Sub YaziAlani_Change()
YaziAlani.SelLength = Len(YaziAlani) 
End Sub
 

VB.NET ile ilgili dikkatinizi çekebilecek diğer örnek uygulamalarımız

1. Visual Basic Kurulumu ve Kaldırılması
2. Visual Basic .Net’de Yazıcı Uygulaması Geliştirme Komutları
3. Visual Basic Net’de Rastgele Sayı Üretme Uygulaması
4. Visual Basic Access Elle Bağlantı Nasıl Yapılır?
5. VB.NET de Formları İç İçe Açma

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir