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

私の問題は、すべてのクライアントのコンボ ボックス クライアント リストに送信するにはどうすればよいですか?

4

1 に答える 1

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
于 2014-02-02T06:38:48.780 に答える