C#的UDPClient发送数据不能跨交换机

noodler 2020-02-04 09:30:29
使用C#语言的UDPClient实现组播发送,设置了ttl,但数据仍然不能跨交换机。代码如下:
public static void GetSetTtl(UdpClient u)
{
// Set the Time To Live (TTL) for this client.
u.Ttl = 42;
Console.WriteLine("Ttl value is {0}",
u.Ttl);
}
设置后调试ttl设置没问题,但抓包看数据的ttl设置仍然为1,跨交换机数据就过不去。请各位大神看看是UDPClient类有什么缺陷吗?
我用的是VS2010.
...全文
164 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
github_36000833 2020-02-05
  • 打赏
  • 举报
回复
交换机没有特别设置不会转发广播(BroadCast)的。试想如果交换机都转发广播,一次广播不传到整个世界? 如果是组播(MultiCast),组播的IPv4范围为224.0.0.0至239.255.255.255,而且需要交换机的支持(当你加入组播组时,交换机需要登记你的订阅,以便转发其他网段的组播)。有些老型号的交换机不支持组播。
noodler 2020-02-05
  • 打赏
  • 举报
回复
引用 2 楼 github_36000833的回复:
交换机没有特别设置不会转发广播(BroadCast)的。试想如果交换机都转发广播,一次广播不传到整个世界? 如果是组播(MultiCast),组播的IPv4范围为224.0.0.0至239.255.255.255,而且需要交换机的支持(当你加入组播组时,交换机需要登记你的订阅,以便转发其他网段的组播)。有些老型号的交换机不支持组播。
交换机设置肯定没有问题,我是用的组播发送。用其他语言写了测试程序是可以跨交换机组播发送的,只有用C#不可以。
threenewbee 2020-02-04
  • 打赏
  • 举报
回复
和交换机应该没什么关系,udp运行在ip层以上,交换机一般都是第二层或者第三层

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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