a i have a existing project here, it's a Cafe management for computer shops..

my problem is with the connection..

when is try to send a packet to the client..

the client wont react...
i dont know if the client side just cant receive the packets the server send..
or
the server didn't send the packet properly..

i been trouble with this for days..
since.. i cant detect the problem..

here the code for the send-button on the server side

Private Sub imgComputingG_Click(Index As Integer)
    Dim stSQL As String
    Dim stTimeIn As String
    On Error GoTo Err_Handling
    
    If MsgBox("Start Unit#" & lblUnitNo(Index).Caption & " Timer?", vbQuestion + vbYesNo, "Start Timer") = vbYes Then
        Screen.MousePointer = vbHourglass
        'bypass
        Sock.RemoteHost = "PC4" 'UnitPanel(Index).Tag
        Sock.SendData "1"
        
        stTimeIn = Format$(Now, "mm/dd/yyyy hh:mm ampm")
        stSQL = "UPDATE UnitLocStats set Status = 'A',"
        stSQL = stSQL & " StartDateTime = #" & stTimeIn & "#"
        stSQL = stSQL & " Where Unit = " & Str2Fld(lblUnitNo(Index).Caption)
        gDB.Execute stSQL

        lblUnitNo(Index).ForeColor = vbWhite
        lblDateCaption(Index).ForeColor = vbCyan
        lblStartTime(Index).ForeColor = vbWhite
        lblStartTime(Index).Caption = stTimeIn
        
        imgComputing(Index).PictureAnimationEnabled = True
        imgComputing(Index).Visible = True
        imgComputingG(Index).Visible = False
        UnitPanel(Index).Refresh
        
        Screen.MousePointer = vbDefault
    End If
    Exit Sub
    
Err_Handling:
    Screen.MousePointer = vbDefault
    If Err.Number = 438 Or Err.Number = 10014 Then
        MsgBox "Workstation currently unavailable ...", vbInformation, "Unavailable"
    Else
        MsgBox Err.Number & " - " & Err.Description & "...", vbInformation, "Error Encountered"
    End If
End Sub

and here's for the client side

Private Sub Form_Load()
    Dim stCompName As String
    Dim stHostComputer As String
    Dim stHostPath As String
    Dim stStatus As String
    Dim stStartTime As String
    Dim lMins As Long
    

    Left = 0
    Top = 0
    
    Sock.RemoteHost = GetSetting(App.Title, "Settings", "HostComputer", "SNAKE-EYES")
    Sock.RemotePort = 1001
    Sock.Bind 1002
    
    stCompName = GetSetting(App.Title, "Settings", "ComputerName", vbNullString)
    stHostComputer = GetSetting(App.Title, "Settings", "HostComputer", vbNullString)
    stHostPath = GetSetting(App.Title, "Settings", "DBPath", "C:\Projects\TMS\TMS.MDB")
    If stCompName = vbNullString Or stHostComputer = vbNullString Or stHostPath = vbNullString Then
        frmSettings.Show vbModal
    End If
    
    stStatus = GetSetting(App.Title, "Settings", "Status", "Locked")
    stStartTime = GetSetting(App.Title, "Settings", "StartTime", vbNullString)
    If stStatus = "Locked" Then
        Call LockWorkStation
    Else
        lMins = CLng((Now - CDate(stStartTime)) * 1440)
        If lMins >= 60 Then
            mbyHrs = CByte(lMins / 60)
            mbyMins = lMins Mod 60
            mbySecs = 0
        Else
            mbyMins = lMins
        End If
        Timer1.Enabled = True
    End If


End Sub
Private Sub Sock_DataArrival(ByVal bytesTotal As Long)
    Dim stData As String
    On Error GoTo Err_Handler
    
    Sock.GetData stData
    Select Case Mid(stData, 1, 1)
        Case "0"          'Lock Workstation and Stop Timer
            Timer1.Enabled = False
            Call LockWorkStation
            Call SaveSetting(App.Title, "Settings", "Status", "Locked")
        Case "1"          'Unlock Workstation and Start Timer
            Call UnlockWorkStation
            Call Reset
            Call SaveSetting(App.Title, "Settings", "Status", "Unlocked")
            Call SaveSetting(App.Title, "Settings", "StartTime", Now)
        Case "2"          'Confirm Order
            MsgBox "Thankyou !!! Your Order(s) and Message have been received...", vbInformation, "Orders Confirmed"
            Unload frmMenuToday
        Case "3"          'Message
            cmdOrder.PlaySoundFile "Notice.wav"
            MsgBox Mid$(stData, 2), vbInformation + vbOKOnly, "Message from Counter"
        Case "4"          'Lock Workstation w/o stopping Timer Settings
            Call LockWorkStation
        Case "5"          'Unlock Workstation w/o stopping Timer Settings
            Call UnlockWorkStation
        Case "6"          'Shutdown Workstation
            Call ShutdownWorkstation
    End Select
    Exit Sub
    
Err_Handler:
    Screen.MousePointer = vbDefault
    MsgBox Err.Number & " - " & Err.Description & " ...", "Error Encountered"
    
End Sub

pls help me

Does the client connect to the server OK first of all?
If you cant connect, then its likely to be related to a networking issue (i.e. a firewall stopping the connection going through).

Are you using TCP or UDP for the connection also? UDP would use the .Bind command (from my experience) whereas the TCP would use .Listen at the receiving end (the server where the clients connect to) and .Connect at the initiating end (the client which is connecting to a server).

Are you using TCP or UDP for the connection also?

yes sir, its using a UDP, ive tried checking the firewall setting, still the same,

when ever i try to send a packet to the client (ex, Start the time of the client)
there's no "Data_arrival" happening on the client side..

also can you pls sir explain to me the .bind command? thx for the reply sir!

.Bind is used in UDP to "attach" the application to a particular local port. Whereas .Listen is used in TCP to allow clients to connect according to the LocalPort provided.

There is a bit more detail about it here: http://msdn.microsoft.com/en-us/library/aa733709(VS.60).aspx

I've not used UDP much, only when making a game server query tool a while back, so I have referred to the link I gave you just then and I think that you would need to include the RemotePort in the server code, and also bind the control to a local port even though it is classed as the server.
The MSDN link advises that the RemoteHost, RemotePort and Bind are to be used on both client and server.

Hope that helps...

This article has been dead for over six months. Start a new discussion instead.