2013-08-31 173 views
0

嗯,我有這個代碼爲我的服務器連接請求。發送更新的客戶端列表到所有連接的客戶端

If sckClients(clientCounter).State <> adstateclosed Then sckClients(clientCounter).Close   
sckClients(clientCounter).Accept requestID 
Command1.Enabled = True 
MsgBox "Connected to client." 
Combo1.AddItem sckClients(clientCounter).LocalIP & "(" & clientCounter & ")" 
clientCounter = clientCounter + 1 
Load sckClients(clientCounter) 

這是爲了更新客戶端列表。

StrMsg = "1~Server~" 
For x = 0 To Combo1.ListCount - 1 
    If x = Combo1.ListCount - 1 Then 
     StrMsg = StrMsg & Combo1.List(x) 
    Else 
     StrMsg = StrMsg & Combo1.List(x) & "~" 
    End If 
Next x 


For x = 0 To clientCounter - 1 
    sckClients(x).SendData StrMsg 
Next x 

我的問題是,我如何將它發送到每個客戶端的組合框客戶端列表?

+0

既然你已經* *是在發送(據我可以告訴從你發佈的代碼)...我假設你問的是完全不同的問題。您是否使用短語「發送到」來表示「顯示在」組合框或其他內容? – Bob77

+0

哦,是的,這就是我的意思。將客戶端列表顯示給所有連接的客戶端組合框。 –

回答

0

如果我理解正確的話你的代碼,(和基於Bob77的澄清),要發送到連接的客戶端可以是這樣的消息:

"1~Server~192.168.0.101(0)~69.125.83.76(1)~127.0.0.1(2)" 

,那麼只需在需要使用VB6的split函數來獲取信息,例如:

客戶端(僞代碼):

Private Sub WinSock_OnData(...) 
    Dim Buffer As String 
    Dim BufferArray() As String 
    Dim Index As Long 

    Call WinSock.GetData(Buffer, ...)   
    BufferArray = Split(Buffer, "~") 

    If BufferArray(0) = "1" Then 
     Call ComboxBox1.Clear   
     For Index = 1 To Ubound(BufferArray) 
      Call ComboxBox1.AddItem(BufferArray(Index)) 
     Next Index 
    End If 

End Sub 
相關問題