Minggu, 19 Juni 2011

Program Chating Multi User (1 Server)

1.  Buka Visual Basic 6.0
2.  Pilih Stadard EXE
 
3. Buat sebuah Form Server seperti pada gambar si bawah ini, dan beri nama untuk setiap komponennya:















Dan berikut sintaxnya:
Project1 - Form1 (code) :
Dim jml_koneksi As Integer
Dim zz As Integer

Private Sub Command1_Click()
    str_sql = "SELECT * FROM admin WHERE user = '" & Text1.Text & "'"
    Set rs = New ADODB.Recordset
    rs.Open str_sql, koneksi, adOpenDynamic, adLockOptimistic
   
    If rs.EOF = False Then
        If rs!pass = Text2.Text Then
            t_isi_pesan.Text = t_isi_pesan.Text & "Connect to: " & Winsock1(jml_koneksi).RemoteHostIP & vbCrLf
            zz = 2
        Else
            MsgBox "Maaf Password salah", vbExclamation, Pesan
            Winsock1(jml_koneksi).Close
        End If
    Else
        MsgBox "Maaf Username Salah", vbExclamation, Pesan
        Winsock1(jml_koneksi).Close
    End If
End Sub

Private Sub Form_Load()
    buka_koneksi
    jml_koneksi = 0
    zz = 0
End Sub

Private Sub listen_Click()
    On Error GoTo Err
    Winsock1(0).Close
    Winsock1(0).LocalPort = t_port.Text
    Winsock1(0).listen
    Exit Sub
Err:
    MsgBox "Error : " & Err.Description, vbCritical
End Sub

Private Sub siarkan_Click()
    Winsock1(jml_koneksi).SendData Winsock1(jml_koneksi).LocalHostName & ":" & t_pesan.Text
    t_isi_pesan.Text = t_isi_pesan.Text & "Server :" & t_pesan.Text & vbCrLf
End Sub

Private Sub Winsock1_Close(Index As Integer)
    Winsock1(jml_koneksi).Close
    t_isi_pesan = t_isi_pesan & "-Disconnect-" & vbCrLf
End Sub

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    jml_koneksi = jml_koneksi + 1
    Load Winsock1(jml_koneksi)
    Winsock1(jml_koneksi).Accept requestID
    zz = 1
End Sub

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim strdata As String
    Dim intcnt As Integer
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer
    Dim d As Integer

    If zz = 1 Then
        Winsock1(Index).GetData strdata
        a = InStr(1, strdata, " ")
        user = Left(strdata, a - 1)
        Text1.Text = user
       
        b = Len(strdata)
        c = b - a
        pass = Right(strdata, c)
        Text2.Text = pass
        zz = 2
    End If
   
    If zz = 2 Then
        Winsock1(Index).GetData strdata
        t_isi_pesan.Text = t_isi_pesan.Text & Winsock1(jml_koneksi).LocalHostName & ":" & strdata & vbCrLf
    End If
   
    For intcnt = 1 To jml_koneksi
        If Winsock1(intcnt).State = sckConnected Then
            Winsock1(intcnt).SendData strdata
            DoEvents
        End If
    Next intcnt
End Sub

Project1 - Module1 (code):
Public koneksi As New ADODB.Connection
Public rs As New ADODB.Recordset
Public str_koneksi As String
Public str_sql As String

Public Sub buka_koneksi()
str_koneksi = "Driver=MySQL ODBC 5.1 Driver;SERVER=localhost;UID=root;DATABASE=user_chating;PORT=3306"
If koneksi.State = 1 Then
    koneksi.Close
End If
'Membuka koneksi  connection
koneksi.Open str_koneksi
End Sub


4. Buatlah sebuah Form Client seperti pada gambar si bawah ini, dan beri nama untuk setiap komponennya:

































Dan berikut sintaxnya:
Dim z As Integer

Private Sub c_dis_Click()
Winsock2.Close
t_pesan.Enabled = 0
t_isi_pesan.Enabled = 0
c_kirim.Enabled = 0
connect.Enabled = 1
status.Caption = "Gagal Menghubungi Server"
End Sub

Private Sub c_kirim_Click()
Winsock2.SendData t_pesan.Text
t_isi_pesan.Text = t_isi_pesan.Text & vbCrLf & t_pesan.Text
End Sub

Private Sub connect_Click()
Winsock2.connect t_ip.Text, t_port.Text
End Sub

Private Sub Form_Load()
status.Caption = "Gagal Menghubungi Server"
t_pesan.Enabled = 0
t_isi_pesan.Enabled = 0
c_kirim.Enabled = 0
End Sub

Private Sub Form_Unload(Cancel As Integer)
Winsock2.Close
End Sub

Private Sub status_Change()
If status.Caption = "Gagal Menghubungi Server" Then
    Winsock2.Close
    t_pesan.Enabled = 0
    t_isi_pesan.Enabled = 0
    c_kirim.Enabled = 0
    connect.Enabled = 1
End If
End Sub

Private Sub t_pass_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    Winsock2.connect t_ip.Text, t_port.Text
End If
End Sub

Private Sub t_pesan_Click()
t_pesan.Text = ""
End Sub

Private Sub t_pesan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Winsock2.SendData t_pesan.Text
t_isi_pesan.Text = t_isi_pesan.Text & vbCrLf & t_pesan.Text
End If
End Sub

Private Sub Winsock2_Close()
status.Caption = "Gagal Menghubungi Server"
t_pesan.Enabled = 0
t_isi_pesan.Enabled = 0
c_kirim.Enabled = 0
End Sub

Private Sub Winsock2_Connect()
Winsock2.SendData t_user.Text
Winsock2.SendData " "
Winsock2.SendData t_pass.Text
status.Caption = "Terhubung Ke Server"
t_pesan.Enabled = 1
t_isi_pesan.Enabled = 1
c_kirim.Enabled = 1
connect.Enabled = 0
End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim pesan As String
Winsock2.GetData pesan
t_isi_pesan.Text = t_isi_pesan.Text & vbCrLf & pesan
End Sub

5. Jalankan Form Server, ketik port yang ingin kita buka, misalnya 2068, lalu klik "Dengarkan".






















6. Jalankan Form Client, Isi IP Server, Port, Username, dan Password:

































7. Lalu pada Form Server, Klik "Cek Database", jika username dan password terdapat pada database (MySql), maka client sudah siap utuk melakukan Chating, yang tidak terdapat dalam database maka, akan muncul pesan,"Username/Password Salah".

8. Selamat Mencoba......

Rabu, 25 Mei 2011

Program Chating

1.  Buka Visual Basic 6.0
2.  Pilih Stadard EXE
 

3.  Buat Tampilan Untuk Client-1 seperti pada gambar di bawah ini:

      

4.  Buat tampilan untuk program Client-2 seperti pada gambar di bawah ini:
     Untuk nama komponen sama dengan program client-1
    

5.  Ketikkan Listing Dibawah ini:
     Client-1:
Private Sub c_dis_Click()
t_ip.Enabled = 0
t_port.Enabled = 0
c_ok.Enabled = 0
connect.Enabled = 0
c_dis.Enabled = 0
c_kirim.Enabled = 0
t_pesan.Enabled = 0
t_isi_pesan.Enabled = 0
t_des.Enabled = 1
t_des.Text = ""
Winsock1.Close
Winsock2.Close
End Sub

Private Sub c_kirim_Click()
Winsock2.SendData Winsock1.LocalHostName & ":" & t_pesan.Text
t_isi_pesan.Text = t_isi_pesan.Text & vbCrLf & t_pesan.Text
End Sub

Private Sub c_ok_Click()
Winsock2.RemoteHost = t_ip.Text
Winsock2.RemotePort = t_port.Text
connect.Enabled = 1
t_des.Enabled = 0
t_ip.Enabled = 0
t_port.Enabled = 0
c_ok.Enabled = 0
Label7.Visible = 1
End Sub

Private Sub connect_Click()
c_dis.Enabled = 1
Winsock2.connect
c_kirim.Enabled = 1
t_pesan.Enabled = 1
t_isi_pesan.Enabled = 1
t_pesan.SetFocus
Label7.Enabled = 0
End Sub

Private Sub Form_Load()
t_ip.Enabled = 0
t_port.Enabled = 0
c_ok.Enabled = 0
connect.Enabled = 0
c_dis.Enabled = 0
c_kirim.Enabled = 0
t_pesan.Enabled = 0
t_isi_pesan.Enabled = 0
End Sub

Private Sub Form_Unload(Cancel As Integer)
Winsock1.Close
Winsock2.Close
End Sub

Private Sub t_des_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
t_ip.Enabled = 1
t_ip.SetFocus
t_port.Enabled = 1
c_ok.Enabled = 1
Winsock1.LocalPort = t_des.Text
Winsock1.Listen
End If
End Sub

Private Sub t_pesan_Click()
t_pesan.Text = ""
End Sub

Private Sub t_pesan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Winsock2.SendData Winsock1.LocalHostName & ":" & t_pesan.Text
t_isi_pesan.Text = t_isi_pesan.Text & vbCrLf & t_pesan.Text
End If
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim pesan As String
Winsock1.GetData pesan
t_isi_pesan.Text = Winsock1.LocalHostName & ":" & t_isi_pesan.Text & vbCrLf & pesan
End Sub

Private Sub Winsock2_Connect()
Label4.BackStyle = 0
status.Caption = "Terhubung Ke Server"
End Sub

     Client-2:
Private Sub c_dis_Click()
t_des.Enabled = 0
connect.Enabled = 0
c_kirim.Enabled = 0
t_pesan.Enabled = 0
t_isi_pesan.Enabled = 0
c_dis.Enabled = 0
t_ip.Enabled = 1
t_port.Enabled = 1
c_ok.Enabled = 1
t_ip.Text = ""
t_port.Text = ""
Winsock1.Close
Winsock2.Close
End Sub

Private Sub c_kirim_Click()
Winsock2.SendData Winsock1.LocalHostName & ":" & t_pesan.Text
t_isi_pesan.Text = t_isi_pesan.Text & vbCrLf & t_pesan.Text
Label8.Visible = 0
End Sub

Private Sub c_ok_Click()
Winsock2.RemoteHost = t_ip.Text
Winsock2.RemotePort = t_port.Text
connect.Enabled = 1
t_ip.Enabled = 0
t_port.Enabled = 0
c_ok.Enabled = 0
End Sub

Private Sub connect_Click()
Winsock2.connect
c_kirim.Enabled = 1
t_pesan.Enabled = 1
t_isi_pesan.Enabled = 1
t_des.Enabled = 1
c_dis.Enabled = 1
Label7.Visible = 1
End Sub

Private Sub Form_Load()
t_des.Enabled = 0
connect.Enabled = 0
c_kirim.Enabled = 0
t_pesan.Enabled = 0
t_isi_pesan.Enabled = 0
c_dis.Enabled = 0
End Sub

Private Sub Form_Unload(Cancel As Integer)
Winsock1.Close
Winsock2.Close
End Sub

Private Sub t_des_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Winsock1.LocalPort = t_des.Text
Winsock1.Listen
t_des.Enabled = 0
connect.Enabled = 0
Label8.Visible = 1
Label7.Visible = 0
End If
End Sub

Private Sub t_pesan_Click()
t_pesan.Text = ""
End Sub

Private Sub t_pesan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Winsock2.SendData Winsock1.LocalHostName & ":" & t_pesan.Text
t_isi_pesan.Text = t_isi_pesan.Text & vbCrLf & t_pesan.Text
Label8.Visible = 0
End If
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim pesan As String
Winsock1.GetData pesan
t_isi_pesan.Text = Winsock1.LocalHostName & ":" & t_isi_pesan.Text & vbCrLf & pesan
End Sub

Private Sub Winsock2_Connect()
'Label4.BackStyle =
status.Caption = "Terhubung Ke Server"
End Sub

6. Selamat Mencoba