2、P 2 P開発過程の——vb 6のP 2 P簡単実現(サービス側)

1895 ワード

1、サービス側
1つのFORM、4つのtextbox:text 1、text 2.text3.text 4,richtextbox:rText 1,winsockコントロール2:WskMsgRcv,WskMsgSend
テストの便宜上、サービス側は2つのクライアントのログイン名を「aaaa」と「bbb」に限定した.
 
Private Sub Form_Load()
    WskMsgRcv.Protocol = sckUDPProtocol ' 
    WskMsgRcv.Bind 4179
    WskMsgSend.Protocol = sckUDPProtocol ' 
    
End Sub

Private Sub WskMsgRcv_DataArrival(ByVal bytesTotal As Long)
    Dim tMsg As String
    Dim Cells() As String
    Dim tempIP As String
    Dim tempPort As String
    
    WskMsgRcv.GetData tMsg
    
    
    Cells = Split(tMsg, "|")
    
    Select Case Cells(0)
        Case "login" ' :login,name
            tempIP = WskMsgRcv.RemoteHostIP
            tempPort = WskMsgRcv.RemotePort
            If Cells(1) = "aaaa" Then
                Text1.Text = tempIP
                Text2.Text = tempPort
            End If
            If Cells(1) = "bbbb" Then
                Text3.Text = tempIP
                Text4.Text = tempPort
            End If
        If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" And Text4.Text <> "" Then sendReady ' , READY 
            
            
        Case "beats" ' :beats,name
            
    End Select
    
    
    rText1.Text = rText1.Text + tMsg + vbCrLf
    
End Sub

Private Sub sendReady()

    WskMsgSend.RemoteHost = Text1.Text  ' IP
    WskMsgSend.RemotePort = Text2.Text ' 
    WskMsgSend.SendData "server|ok|" & Text3.Text & "|" & Text4.Text
    
    DoEvents
    WskMsgSend.RemoteHost = Text3.Text  ' IP
    WskMsgSend.RemotePort = Text4.Text ' 
    WskMsgSend.SendData "server|ok|" & Text1.Text & "|" & Text2.Text
    
End Sub


 
2、クライアントは次の《3、P 2 P開発過程の——vb 6のP 2 P簡単実現(クライアント)》を参照する.