İ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.Close
Ve 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