注册 登录
编程论坛 VB6论坛

winsock的问题

chen3bing 发布于 2018-10-08 10:36, 1242 次点击
我买了《VB网络与远传控制编程实例教程》,在25页有个例子,UDP客户端/服务器。
客户端两个文本框,一个按钮,一个winsock控件。
代码如下:
Private Sub CmdSend_Click()
    '发送数据
    sckclient.SendData TxtSend.Text
End Sub

Private Sub Form_Load()
    With sckclient
    '要连接到计算机的IP或名称
    .RemoteHost = "127.0.0.1"
    '要连接到计算机的端口
    .RemotePort = 1002
    '本地计算机使用的端口
    .LocalPort = 1001
    '将sckclient绑定到本地计算机1002端口
    .Bind 1001
End With
End Sub

Private Sub sckclient_DataArrival(ByVal bytesTotal As Long)
    Dim MyStr As String
    '得到数据
    sckclient.GetData MyStr
    TxtGet.Text = TxtGet.Text & Chr(10) & Chr(13) & MyStr
End Sub
服务器端两个文本框,一个按钮,一个winsock控件。
代码如下:
Private Sub CmdSend_Click()
'发送数据
SckServer.SendData TxtSend.Text
End Sub

Private Sub Form_Load()
With SckServer
'要连接到计算机的IP或名称
.RemoteHost = "127.0.0.1"
'要连接到计算机的端口
.RemotePort = 1001
'本地计算机使用的端口
.LocalPort = 1002
'将sckclient绑定到本地计算机1001端口
.Bind 1002
End With
End Sub
Private Sub SckServer_DataArrival(ByVal bytesTotal As Long)
Dim MyStr As String
'得到数据
SckServer.GetData MyStr
TxtGet.Text = TxtGet.Text & Chr(10) & Chr(13) & MyStr
End Sub
运行两个程序,在客户端TxtSend文本框中输入123,点击按钮发送,出现错误
只有本站会员才能查看附件,请 登录

这一行有错。
只有本站会员才能查看附件,请 登录

请问高手,如何解决?谢谢
1 回复
#2
wmf20142018-10-08 11:38
winsocket控件默认的是tcp连接,需要设置为udp连接,两个form_load代码修改如下即可:
Private Sub Form_Load()
    With sckclient
    .Protocol = sckUDPProtocol   '客户端设置为udp模式
    '要连接到计算机的IP或名称
    .RemoteHost = "127.0.0.1"
    '要连接到计算机的端口
    .RemotePort = 1002
    '本地计算机使用的端口
    .LocalPort = 1001
    '将sckclient绑定到本地计算机1002端口
    .Bind 1001
End With
End Sub

Private Sub Form_Load()
With SckServer
'要连接到计算机的IP或名称
.Protocol = sckUDPProtocol    '服务器设置为udp模式
.RemoteHost = "127.0.0.1"
'要连接到计算机的端口
.RemotePort = 1001
'本地计算机使用的端口
.LocalPort = 1002
'将sckclient绑定到本地计算机1001端口
.Bind 1002
End With
End Sub


1