我有一个VB6 appl,其中我有一个函数,我发送消息(跟踪appl正在做什么)通过发送UDP广播消息(255.255.255.255或子网的广播地址172.16.7.255/11) 。该功能从应用程序中的各个位置调用。
我有另一个应用程序在同一个端口上侦听并显示我认为正常的消息。
我可以在子网中的任何主机上运行发送应用程序监听器应用程序,所有似乎都可以正常工作。但是,当我在Windows 8上运行发送应用程序时,我发现我只看到每一条消息。我的消息碰巧被编号,基本上我只看到奇数编号的消息。
我试图通过以下方式消除许多可能的问题:
Sleep
和/或DoEvents
相关代码是:
Private WithEvents sock As Winsock
Public Sub Init()
Set sock = new Winsock
End Sub
Public Sub Send(msg As String)
sock.RemoteHost = "255.255.255.255"
sock.RemotePort = 17907
sock.SendData msg
End Sub
有关可能出现的问题或我可以进行的进一步测试的任何建议。
答案 0 :(得分:1)
我在VBA遇到类似的问题,访问2010.唯一解决这个问题的是这个(我知道它没有任何意义)。重复这一行两次:
Sock.RemoteHost = DestinationIP ( for example: "192.168.0.10")
Sock.RemoteHost = DestinationIP ( same value as in the above line)
它像魔术一样:
乔
答案 1 :(得分:0)
尝试使用绑定为您的应用设置本地端口:
Private WithEvents sock As Winsock
Public Sub Init()
Set sock = new Winsock
sock.Bind 17000 'Or any other high port
End Sub
Public Sub Send(msg As String)
sock.RemoteHost = "255.255.255.255"
sock.RemotePort = 17907
sock.SendData msg
End Sub