this is the code for my refresh routine:

Dim sIdx As Integer
Dim Y As Integer
Dim ECHO As ICMP_ECHO_REPLY
Dim strimcap As String

sIdx = frmbrowser.lstservers.ListItems.Count

For Y = 1 To sIdx
lstate:
If frmbrowser.lblstate.Caption = "closed" Then
Set frmbrowser.lstservers.SelectedItem = frmbrowser.lstservers.ListItems.Item(Y)
frmbrowser.picprogressslide.Visible = True
UpdateProgress Y / sIdx, frmbrowser
frmbrowser.lblstatus.Caption = " querying " & frmbrowser.lstservers.SelectedItem.SubItems(1)
ElseIf frmbrowser.lblstate.Caption = "canceled" Then
GoTo lstate1
Else
Pause 0.1
GoTo lstate
End If

frmbrowser.lblstate.Caption = "open"
frmbrowser.lstservers.Enabled = False

Call Ping(Left$(frmbrowser.lstservers.ListItems.Item(Y).SubItems(1), InStr(frmbrowser.lstservers.ListItems.Item(Y).SubItems(1), ":") - 1&), ECHO)
frmbrowser.lstservers.ListItems.Item(Y).SubItems(2) = ECHO.RoundTripTime

strimcap$ = frmbrowser.lstservers.ListItems.Item(Y).SubItems(1)
Let frmbrowser.Winsock1.RemoteHost = Left$(strimcap$, InStr(strimcap$, ":") - 1&)
Let frmbrowser.Winsock1.RemotePort = Right$(strimcap$, Len(strimcap$) - InStr(strimcap$, ":"))

frmbrowser.lstplayers.ListItems.Clear
frmbrowser.lstrules.ListItems.Clear

frmbrowser.Winsock1.Close
frmbrowser.Winsock1.Connect
frmbrowser.Winsock1.SendData "ÿÿÿÿstatus"
Next

lstate1:
If frmbrowser.lblstate.Caption = "closed" Then
frmbrowser.lstservers.Enabled = True
frmbrowser.lstservers.SetFocus
Set frmbrowser.lstservers.SelectedItem = frmbrowser.lstservers.ListItems.Item(1)
StartAndStopProgress frmbrowser
If sIdx < 2 Then
frmbrowser.lblstatus.Caption = " refresh finished. " & sIdx & " server has been queryed."
Else
frmbrowser.lblstatus.Caption = " refresh finished. " & sIdx & " servers has been queryed."
End If
ElseIf frmbrowser.lblstate.Caption = "canceled" Then
frmbrowser.lstservers.Enabled = True
frmbrowser.lstservers.SetFocus
Set frmbrowser.lstservers.SelectedItem = frmbrowser.lstservers.ListItems.Item(1)
StartAndStopProgress frmbrowser
If Y - 2 < 2 Then
frmbrowser.lblstatus.Caption = " refresh canceled. " & Y - 2 & " server has been queryed."
Else
frmbrowser.lblstatus.Caption = " refresh canceled. " & Y - 2 & " servers has been queryed."
End If
frmbrowser.lblstate.Caption = "closed"
Else
Pause 0.1
GoTo lstate1
End If

i'm wondering, how would i be able to make my winsock control timeout waiting for a responce from the server i sent my data to after a certain about of secs and then goto the next value in the For Y = 1 To sIdx part..