lostyazilim
tr.link

[VB6] Sohbet (irc) Programı Oluşturuyoruz

3 Mesajlar 3.001 Okunma
acebozum
tr.link

AtakanAtes AtakanAtes 1881 - 193∞, özlemle...
  • Üyelik 05.06.2011
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım Tek.
  • Konum Ankara
  • Ad Soyad A** A**
  • Mesajlar 2867
  • Beğeniler 54 / 747
  • Ticaret 25, (%100)
Merhaba arkdaşlar bu dersimizde visual basic 6 ile Sohbet (chat) sistemi oluşturacağız. İlk olarak bu bir örnek çalışmadır ve görsellik açısından zayıftır. Geliştirilmeye açık mantığı anlamanız yeterli olcaktır. Dersimize Başlayalım;

İlk Olarak: Sistemimize yönetmek ve için bir server oluşturmamız gerekiyor. Projemden örnek bir Servera bağlanma görüntüsü veriyorum:



Evet şimdi Servera bağlanmak için bir "Winsock" nesnesi kullanmalıyız form'a bir tane Winsock ekledikten sonra 2 tane text ekliyelim. Birisi IP Okuyucu diğeri ise port okuyucu olsun. Ve birde "Sohbete Bağlan" eklemek için ben label kullandım siz command'da kulanabilirsiniz ve çift tıklayıp şöyle yazıyoruz:
If ipText = "" And portText = "" Then
bilgi = "Boş Alan Var !" ' eğer eksikse
Else ' değilse
sck.Close 'sck kapat
sck.RemoteHost = ipText 'ipyi oku
sck.RemotePort = portText 'portu oku
sck.Connect 'belirlenen ip ve porta bağlan
Frame1.Visible = True
Form1.Height = "7650"
End If 'döngüyü bitir
Evet şimdi bağlantı ayarlarını yaptık şimdi sohbet alanı için 2 tane textbox ve 1 tane command ekliyoruz.Command gönder butonu olcak ve içine:
sck.SendData (sck.LocalHostName + ": " + txtMsj.Text)
chat.Text = chat + "Ben= " + txtMsj + vbCrLf
txtMsj.Text = ""
Örnek bir görüntü:



Şimdi ise 3 command daha ekliyelim ve bunlar kanalda ki kullanıcılar adına olsun. Misal flood yapak veya kurallara uymayan kullanıcıya uyarı verelim.

Uyarı ver butonu:
Dim iuyari As String 'metinsel şekilde bir değişken
iuyari = "ver"
uyariver.Visible = False
uyariverme.Visible = True
Uyarı verme butonu:
Dim iuyari As String 'metinsel şekilde bir değişken
iuyari = "verme"
uyariver.Visible = True
uyariverme.Visible = False
Ve şimdi Form_Code'u tekrar açıp şu kodları ekleyelim:
Private Sub sck_DataArrival(ByVal bytesTotal As Long)
If sck.State = sckConnected Then
Dim gveri As String
sck.GetData gveri
msj.Text = ""
msj.Text = gveri
chat.Text = chat + gveri + vbCrLf
If iuyari = "ver" Then uyr_Load
End If
End Sub

Private Sub uyr_Load()
dikkat.Show
End Sub
Burada kullanıcı uyarı aldığında dikkat form'u açılacaktır. Dikkat form'unu ben şu şekilde yaptım:



Dikkat formuna:
Private Sub Form_Load()
dikkat.Top = Screen.Height - dikkat.Height
dikkat.Left = Screen.Width - dikkat.Width
End Sub
Sağ altta çıkması içindir.

Ve "x" harfine tıklandığında kapanması için:
Unload dikkatŞimdi tekrar ana form'a dönüp devam ediyoruz. Bağlantıyı kesmek istediğiniz zamanda bir buton oluşturup şunu ekliyorsunuz:
sck.CloseVe Server'ımızı Hazırlamış Durumdayız. Şimdi diğer kullanıcıların odaya katılabilmesi için oluşturmamız gereken birde client var. :) Başlıyoruz.

Daha pratik olması açısından diğer projenizi birebir kopyalayın ve 1 adet timer ekleyin. Timer'ın içine:
If sck.State = sckClosed Then
sck.Close
sck.LocalPort = portText.Text
sck.Listen
Frame1.Visible = True
Form1.Height = "7650"
Else
portkontrol.Enabled = False
End If
Bağlantı ayarını kontrol etmek için:
Private Sub sck_Close()
sck.Close
sor = MsgBox("Bağlantı Kesildi.Tekrar bağlanılsınmı", vbYesNo, "")
If sor = vbYes Then
portkontrol.Enabled = True
Else
portkontrol.Enabled = False
End If
End Sub
Gönderme Kodları:
Private Sub msj_KeyPress(KeyAscii As Integer)
ab = KeyAscii
If ab = 13 Then Call gonder_Click
End Sub
Private Sub sck_ConnectionRequest(ByVal requestID As Long)
If sck.State <> sckClosed Then sck.Close
sck.Accept requestID
End Sub
Gelen mesajları görebilmemiz için:
Private Sub sck_DataArrival(ByVal bytesTotal As Long)
Dim gelen As String
sck.GetData gelen
txtMsj.Text = ""
txtMsj.Text = gelen
chat.Text = chat + gelen + vbCrLf
gelen = ""

End Sub
Eğer bağlantı hatamız varsa:
Private Sub sck_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)
sck.Close
portkontrol.Enabled = True
End Sub
Web artık sorunsuz bir Sohbet programımız var :)
[SIZE=1]"Clienti çalıştırmadan server'ı çalıştıramazsınız"[/SIZE]




[SIZE=4][COLOR=Red]Örnek Projeyi İndir[/COLOR][/SIZE]

kaynak

 

 

wmaraci
reklam

Onur89TR Onur89TR Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 04.12.2011
  • Yaş/Cinsiyet 35 / E
  • Meslek .
  • Konum İzmir
  • Ad Soyad ** **
  • Mesajlar 2376
  • Beğeniler 704 / 791
  • Ticaret 1, (%100)
Dostum şevkini kırmak istemem fakat Visual Studio 2012 çıkmış siz hala VB 6 kullanıyorsunuz. Bu Windows 8 varken Windows 98 SE kullanmaya benziyor. Biraz daha güncellenelim, yeniliklere açık olalım diyorum. Ne dersin?
brk

kişi bu mesajı beğendi.

AtakanAtes AtakanAtes 1881 - 193∞, özlemle...
  • Üyelik 05.06.2011
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım Tek.
  • Konum Ankara
  • Ad Soyad A** A**
  • Mesajlar 2867
  • Beğeniler 54 / 747
  • Ticaret 25, (%100)

Onur89TR adlı üyeden alıntı

Dostum şevkini kırmak istemem fakat Visual Studio 2012 çıkmış siz hala VB 6 kullanıyorsunuz. Bu Windows 8 varken Windows 98 SE kullanmaya benziyor. Biraz daha güncellenelim, yeniliklere açık olalım diyorum. Ne dersin?

Tercih meselesi ki VS 2012'den çok vb6 yaygın durumda.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al