VB'de Telnet Programı Yapmak
Bunun için:
2 Commandbutton Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. ağlanmak ve bağlantı kesmek için
1 Label:bağlantı durumu için
5 tane Textbox:karşı ip,karşı port,veri almak,veri göndermek,verinin boyutu için
1 tane winsock ve 1 tane de timer:winsock durumu için(interval=100)
ayrıca text4'ün multiline=true olmalı
Private Sub Command1_Click()'bağlanmak için
Select Case Winsock1.State 'winsock durumuna göre
Case "0": 'eğer kapalı ise bağlantıyı kuracağız
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = Text2.Text
Winsock1.Connect
Case "7": 'eğer bir bağlantı varsa bunun olduğunu ve bağlantı hakkında bilgi vereceğiz
MsgBox "Zaten Bir Bağlantı Kurulu:" & vbCrLf & Winsock1.RemoteHostIP & ":" & Winsock1.RemotePort, vbInformation, "Hata"
End Select
End Sub
Private Sub Command2_Click()'bağlantıyı kesmek için
Select Case Winsock1.State 'winsock durumuna göre
Case "0": 'eğer bağlantı yoksa bişey yapmayacağız
Case "7": 'eğer bağlantı varsa bir soru soracağız ona göre bağlantı ya devam edecek ya da kesilecek
Dim cevap
cevap = MsgBox(Winsock1.RemoteHostIP & ":" & Winsock1.RemotePort & " ile Bağlantıyı Kesmek istediğinizden Emin Misiniz?", vbInformation + vbYesNo, "Bağlantı Kes")
If cevap = vbYes Then
Winsock1.Close
End If
End Select
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
'Bağlantı Kurulu iken karşı tarafa mesaj göndermek için text3 'ye mesaj yazıp
'entera basınca mesaj gidicek bunu için önce bağlı olup olmadığımızı kontrol edicez
If Winsock1.State = 7 Then
If KeyAscii = 13 Then 'basılan tuş enter ise
Winsock1.SendData Text3.Text 'text3ü gönder
Text4.Text = Text4.Text & "Gönderilen:" & Text3 & vbCrLf
Text3.Text = "" 'text3ü temizledik
End If
End If
End Sub
Private Sub Text4_Change()
Text4.SelStart = Len(Text4.Text) 'bununla mesaj geldi mi en son kalan yerinden devam
'edicek biz de scroll bar ile sürekli aşağı inmek zorunda kalmayacağız.
End Sub
Private Sub Timer1_Timer()
'winsock durumunu anlamak için
Select Case Winsock1.State
Case "0": Label1.Caption = "Kapalı"
Case "1": Label1.Caption = "Açık"
Case "7": Label1.Caption = "Bağlı"
Case "9": Label1.Caption = "Hata!"
Winsock1.Close 'hata olduğunda winsock tekrar hazır duruma gelecek
Case "8": Label1.Caption = "Bağlantı Kesildi"
Winsock1.Close
End Select
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim gelen As String 'gelen veriyi string olarak tanımlamazsak düzgün alamayız
Winsock1.GetData gelen
Text4.Text = Text4.Text & "Gelen:" & gelen & vbCrLf 'gelen veri text4'e aktırlacak
Text5.Text = Text5.Text + bytesTotal / 1000 'burada da gelen verinin boyutunu kilobyte a çeviriyoruz
've text5'e ekleyerek devam ediyoruz.
End Sub
Private Sub Form_Load()
Text5.Text = "0" 'gelen verinin boytunu hesaplarken text5i sıfırlamak gerek yoksa hata çıkar |