UDP广播的问题

ccbbcc 2018-12-06 10:53:35
我搞电脑和单片机网口通信,单片机发的数据电脑能收到,
电脑发的数据单片机收不到。
我的VB界面如下:
程序如下:
Private Sub CmdSend_Click()
'发送数据
SckServer.SendData TxtSend.Text
End Sub

Private Sub Form_Load()


With SckServer
'.RemoteHost = "192.168.1.30"
'.RemoteHost = "255.255.255.255"
.RemoteHost = "192.168.1.255"
.RemotePort = 8089
.LocalPort = 8089
.Bind 8089
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
TxtGet.Text = MyStr
End Sub

请高手看看,VB程序有没有问题?谢谢!
...全文
360 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2018-12-06
  • 打赏
  • 举报
回复
引用 2 楼 ccbbcc 的回复:
单片机IP192.168.1.30,掩码255.255.255.0,端口8089.
电脑IP不知道,自动获得,掩码255.255.255.0

电脑的IP,你可以在命令行窗口中,执行 ipconfig 看一下电脑具体获得的IP 是多少啊。
你的电脑要跟单片机在同一网段中才行吧。

VB业余爱好者 2018-12-06
  • 打赏
  • 举报
回复
没发现问题,可以参考一下下面这个帖子

https://blog.csdn.net/cncco/article/details/50855221?utm_source=blogxgwz6
X-i-n 2018-12-06
  • 打赏
  • 举报
回复
直接用 192.168.1.30通信吧,代码暂时没看出问题。如果电脑ip也是192.168.1.x,那么配置也没有问题。
ccbbcc 2018-12-06
  • 打赏
  • 举报
回复
单片机IP192.168.1.30,掩码255.255.255.0,端口8089.
电脑IP不知道,自动获得,掩码255.255.255.0
X-i-n 2018-12-06
  • 打赏
  • 举报
回复
单片机的IP是多少,掩码是多少,端口是多少 你的电脑IP是多少,掩码是多少
脆皮大雪糕 2018-12-06
  • 打赏
  • 举报
回复
在单片机接的那根网线上接个笔记本,然后设置成一样的IP ping一下你的机器,看能不能通。 还有你的网络环境有没有啥限制,公司有没有啥mac和ip绑定之类的要求,会不会是你的单片机都根本被隔断的。
ccbbcc 2018-12-06
  • 打赏
  • 举报
回复
谢谢大家。我把单片机改成192.168.0.30,还是不行。估计是单片机程序问题
VB业余爱好者 2018-12-06
  • 打赏
  • 举报
回复
引用 8 楼 ccbbcc 的回复:
在同一个网段啊
电脑192.168.0.105
单片机:192.168.0.255


你单片机IP不是192.168.1.30 吗?你本机是192.168.0.105,不在一个网段。192.168.0.255 是 192.168.0.X 段的一个广播地址,不能作为单机地址的。

建议要么把本机地址改为192.168.1.Y(Y=2~254,且Y<>30),单片机保持192.168.1.30;要么本机地址保持192.168.0.105,单片机改成192.168.0.Y(Y=2~254,且Y<>105)。这样就将两个机器放到同一个网段了。

至于程序中的“RemoteHost ”,倒是可以使用广播地址。
X-i-n 2018-12-06
  • 打赏
  • 举报
回复
引用 2 楼 ccbbcc 的回复:
单片机IP192.168.1.30,掩码255.255.255.0,端口8089. 电脑IP不知道,自动获得,掩码255.255.255.0
网络你可能完全不懂,解释起来太麻烦,你照着我说的去改就行了。
ccbbcc 2018-12-06
  • 打赏
  • 举报
回复
在同一个网段啊
电脑192.168.0.105
单片机:192.168.0.255
X-i-n 2018-12-06
  • 打赏
  • 举报
回复
两个设备不在一个网段。要么改你电脑,要么改单片机。把IP地址改成相同网段。
ccbbcc 2018-12-06
  • 打赏
  • 举报
回复
看了,是192.168.0.105.
我把代码改成这样还不行。
Private Sub Form_Load()
SckServer.Protocol = sckUDPProtocol


With SckServer
'.RemoteHost = "192.168.1.30"
'.RemoteHost = "255.255.255.255"
.RemoteHost = "192.168.0.255"
.RemotePort = 8089
.LocalPort = 8089
.Bind 8089
End With

End Sub

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧