- 主题:Re: MFC Socket编程 UDP突然接收不到局域网内节点的数据
从现象上看是listen在了localhost上而不是0.0.0.0
可以netstat确认下
【 在 feiy (null) 的大作中提到: 】
: 今天使用MFC编写了一个UDP接收的小应用,基于单对话框,结果发现:
:
: (1)如果在同一台电脑A上,运行调试助手TCP&UDPDebug,向这个小应用发送UDP数据,
: 这个小应用总可以接受得到数据。
--
FROM 101.93.138.*
也可能是udp参数设置问题,对等网络,可能你会用广播组播? 组播地址的段,还有路由传递层数等,也会影响本机非本机。
可以改用nng nanomsg等
【 在 feiy 的大作中提到: 】
: 今天使用MFC编写了一个UDP接收的小应用,基于单对话框,结果发现:
: (1)如果在同一台电脑A上,运行调试助手TCP&UDPDebug,向这个小应用发送UDP数据,
: 这个小应用总可以接受得到数据。
: ...................
--
FROM 221.218.142.*
那是比较麻烦,或许是windows对小程序的权限名单问题?
还是建议直接上 nanomsg,轻量型的消息中间件,代码可能比配置UDP还少几行,从此不用去对付低级bug……
参考:
https://nanomsg.org/documentation.html
【 在 feiy 的大作中提到: 】
: 谢谢!
: 唉,找不到原因时,的确也反复怀疑过你说的这一点,是不是自己犯了什么弱智疏忽?比如是不是目标地址端口填充错误了等等。所以,在两种对照测试(一个是在同一台电脑上收发,一种是两台电脑上收发)下,对小应用发送UDP数据,用单播非组播点播,发送方配置的目标UDP参数都完全一样,对照着比较了。还是一样的问题。
: 此外,在运行这个小应用的电脑上用wireshark监控,是可以捕获到从其他电脑上发来的udp数据包,但是这个小应用就是不触发event从而跳到接收处理。
: ...................
--
FROM 221.218.142.*
为什么还要用如此古老的开发方式?
ZMQ、Nanomsg。。。随便来一个都很香。
【 在 feiy 的大作中提到: 】
: 今天使用MFC编写了一个UDP接收的小应用,基于单对话框,结果发现:
: (1)如果在同一台电脑A上,运行调试助手TCP&UDPDebug,向这个小应用发送UDP数据,
: 这个小应用总可以接受得到数据。
: ...................
--
FROM 122.238.143.*
Set-NetConnectionProfile -NetworkCategory Private
【 在 feiy 的大作中提到: 】
: 今天使用MFC编写了一个UDP接收的小应用,基于单对话框,结果发现:
: (1)如果在同一台电脑A上,运行调试助手TCP&UDPDebug,向这个小应用发送UDP数据,
: 这个小应用总可以接受得到数据。
: ...................
--
FROM 171.88.47.*
是不是哪个变量没初始化
【 在 feiy 的大作中提到: 】
: 补充说一下:采用的是VC++ 6.0开发环境,自带的MFC库,写了一个很简单的接收udp广播的小应用。
:
: 后来发现,好像是Debug还是Release的配置问题:保持其他一切不变,从“Win32 Debug”改成选择“Win32 Release”,问题就消失了;而从“Win32 Release”改成“Win32 Debug”,问题就出现了,且这种对比实验可以反复复现。
: ...................
--
FROM 106.47.250.*
Windows下通常是防火墙的问题,Debug版的执行文件被防火墙拦截了呗,你可以试试禁用防火墙和杀毒软件再试试。
--
FROM 110.185.26.*
vc6真是常青树啊。。。。
MS的兼容性也是无敌了,二十几年前的东西了还能用
【 在 feiy 的大作中提到: 】
: 补充说一下:采用的是VC++ 6.0开发环境,自带的MFC库,写了一个很简单的接收udp广播的小应用。
: 后来发现,好像是Debug还是Release的配置问题:保持其他一切不变,从“Win32 Debug”改成选择“Win32 Release”,问题就消失了;而从“Win32 Release”改成“Win32 Debug”,问题就出现了,且这种对比实验可以反复复现。
: 推测可能是这两种配置或相关库哪里有区别吧,于是对照着“Win32 Release”的配置,在“Win32 Debug”一一修改配置,试图找出是哪个配置的影响。但是几乎都改遍了,还是在Win32 Debug下就会出问题。只好以后有空再深入研究:-)
: ...................
--
FROM 221.182.151.*
只是楼主习惯用vc6吧,他这代码用vs2022估计也一样编译了跑
不兼容自己家的老物件的没几个吧,因为不兼容容易死
【 在 jimmycmh (Jimmy) 的大作中提到: 】
: vc6真是常青树啊。。。。
:
: MS的兼容性也是无敌了,二十几年前的东西了还能用
:
--
FROM 222.129.205.*
常见的linux发行版,能保持几十年兼容的基本没有吧,libc一升级就死一批软件
【 在 z16166 的大作中提到: 】
只是楼主习惯用vc6吧,他这代码用vs2022估计也一样编译了跑
不兼容自己家的老物件的没几个吧,因为不兼容容易死
【 在 jimmycmh (Jimmy) 的大作中提到: 】
: vc6真是常青树啊。。。。
:
: MS的兼容性也是无敌了,二十几年前的东西了还能用
:
--
FROM 221.182.151.*