主要控件:WinSock.ocx '第三方控件,只有企业版才有,精简版没有
TextBox 2个
CommandBox 1个
本例中我无法给大家爱展现的点对点通讯效果,因为我把两个地址都填入的是自己的,所以看上去像是跟自己聊天,但是原理和思路都没有错误。
代码如下:
Private Sub Command1_Click()
Winsock1.SendData txtsend.Text
txtsend.Text = ""
txtsend.SetFocus
End Sub
Private Sub Command2_Click()
Winsock1.Close
End
End Sub
Private Sub Form_Load()
Dim my As String
Winsock1.Protocol = sckUDPProtocol
Winsock1.LocalPort = 10
Winsock1.RemotePort = 10
my = Winsock1.LocalIP
Winsock1.RemoteHost = my
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim tmp As String
Winsock1.GetData tmp, vbString
tmp = "对方内容:" + Winsock1.RemoteHostIP + "发言内容-->" +
tmp
txtmess.Text = tmp + Chr$(13) + Chr$(10) + txtmess.Text
End Sub
代码很短,但是确实能够实现点对点之间的通信。为什么选择UDP协议呢,第一是因为简单,第二是TCP我不会啊。TCP的通信请求与连接实在是有点复杂,需要点时间才能搞懂。下面说一下该程序的实现。
该程序是基于UDP通信协议制作,所以实现通信时必须双方都必须同时开通改程序才可。
注意的事件:端口问题。双方开放的通信端口必须一致,两外在设计期间就必须确定对方的IP。这其实是我的设计缺陷,因为不像TCP那样能够随机进行通信连接,所以我做的这个程序只是在设计期间就必须确定对方的通信地址(失败。。。)。或许UDP也可以进行随机通信连接,但是由于本人水平只限于此。不过呢,这个程序会继续升级的所以请期待吧。