1、服务端
一个FORM,4个textbox:text1,text2.text3.text4,一个richtextbox:rText1,两个winsock控件:WskMsgRcv,WskMsgSend
为测试方便,服务端限定了两个客户端的登录名为:"aaaa"和"bbbb"
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、P2P开发历程之——vb6之P2P简单实现(客户端)》