Socket 广播与组播能否跨网段?

coolphilips 2007-06-01 12:04:12
Socket 广播与组播能否跨网段,相关代码如下:

Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, Port);
byte[] data = Encoding.ASCII.GetBytes(Info);
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
sock.SendTo(data, iep);
sock.Close();

只能同网段的可以收到数据,如果是跨网段则一定要指定IP
IPEndPoint iep = new IPEndPoint(“目标机器IP”, Port);
...全文
1661 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
WuZongBo 2007-06-01
  • 打赏
  • 举报
回复
那是当然的了 只有同一网段才能用IPAddress.Broadcast进行通讯 ,如果不是则需要指定IP了;
IPAddress.Broadcast 提供 IP 广播地址,即255.255.255.255 也是一个IP



coolphilips 2007-06-01
  • 打赏
  • 举报
回复
我现在的状况是同网段的直接IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, Port);就可以收到消息,但是如果跨网段的话则一定要指定对象的具体IP地址才可以
coolphilips 2007-06-01
  • 打赏
  • 举报
回复
楼上的朋友 你的意思是需要一个服务器程序?具体点可以吗
WuZongBo 2007-06-01
  • 打赏
  • 举报
回复
如果你想两个台局域网之间通讯的话 需要一个固定的IP服务器 才能通讯

如果是本局域网之间的话则不需要
WuZongBo 2007-06-01
  • 打赏
  • 举报
回复
跨不跨都需要指定IP终结点
coolphilips 2007-06-01
  • 打赏
  • 举报
回复
原来还是要这样啊!
WuZongBo 2007-06-01
  • 打赏
  • 举报
回复
192.168.1.255 只对 一台有用

当ClientSocket 连接到ServerClient 的时候 你可以记录每一台ClientScoket

然后foreach发送就OK了
coolphilips 2007-06-01
  • 打赏
  • 举报
回复
我用
IPEndPoint iep = new IPEndPoint(“192.168.1.255”, Port);不起作用
coolphilips 2007-06-01
  • 打赏
  • 举报
回复
那如果要对别的网段的所有机器广播,起不是要用循环每台机器一次?
RS232/RS485串口服务器解决方案 技术特点及应用方式 产品技术特点 供1-16路硬件独立串口(RS232/RS485/TTL)转以太网 支持TCP/IP Server、Client及UDP广播模式,TCP/IP模式下可以网段访问 内建支持动态域名服务和Modbus TCP、Modbus RTU双向转换功能 支持双(多)串口服务器透明传输功能。 串口支持流传输及自适应数据帧模式,兼容各种串口应用。 提供VSPM虚拟串口软件。为自适应设计,虚拟串口的参数与串口服务器自动同步,无需 手工设置。同时也支持TCP/IP直连通讯方式。 支持Telnet网管,四口及以上设备提供一个RS232管理口,支持固件刷新。 具备实时断线检测、断线重连、内置看门狗等各类故障恢复机制,并内置管理员口令、 IP认证系统,用于提高网络安全性能。 工业级产品采用磁偶或光电隔离、内置国标电源系统、高等级防护芯片等措施,可在恶 劣环境中稳定运行。 解决方案 串口服务器与电脑上位机应用方式 串口服务器与电脑上位机,用UDP广播实现一对多传输。 串口服务器Sokcet应用方式 串口服务器采用原始数据(RAW Data)传输模式,在与串口服务器建立TCP/IP连接后,就可以直接传输数据。 在使用Socket方式时,请打开TCP/IP的KeepAlive机制,并将检测超时设置为10秒,这样 可以快速检测出网络故障,并做出相应处理。 两个(或多个)串口服务器透明传输 串口服务器A设置为TCP/IP Server模式,串口服务器B设置为TCP/IP Client,并将B的远程服务器地址设置为A的IP地址,这2个串口服务器就可以实现透 明传输。在UDP广播模式下,多个串口服务器的接收端口设置为A的发送端口,A的接 收端口设置为多个串口服务器的发送端口,这样就可以实现串口服务器的单对多透明 传输。 串口服务器与其他嵌入式网络设备联合使用 串口服务器可以与其他嵌入式网络设备联合使用。但是两个设备的工作模式必须匹配。 在串口服务器为Server模式时,其他网络设备必须为Client模式。 串口服务器为Client模式时,其他网络设备必须为Server模式 串口服务器为UDP广播模式时,其他网络设备必须为UDP广播模式。 在与其他网络设备通讯时,建议开启串口服务器的<自适应数据帧>模式,由串口服务器 完成串口数据帧重组,用于消除拆包现象。 串口服务器互联网应用-动态域名服务 串口服务器的网关(如ADSL等)为外网动态IP,远程主机也是外网动态IP。这种情 况下,必须申请"动态域名服务"来取得一个固定域名,用于串口服务器解析远程主机IP 地址。 串口服务器根据指定的域名,解析出远程主机的当前IP地址,并主动与主机建立TCP/IP 连接。主机可以在内网或在外网,当主机在内网时,需要在网关上做NAT映射。 串口服务器互联网应用-内网主机 串口服务器可以通过互联网、网关连接到有固定IP内网主机,当主机在内网时,需要在 网关上做NAT映射。 串口服务器工作模式 所有的串口服务器都支持下面这些工作模式,可以通过串口服务器的管理功能配置相应 的工作参数,就可以切换到所需要的模式。 网络工作模式 TCP/IP Server模式 串口服务器监听TCP/IP端口并等待连接,向串口服务器发起连接的可以是电脑或其他 嵌入式网络设备。 TCP/IP Client模式 串口服务器根据设置,向指定的远程主机TCP/IP端口发起连接,这些主机必须工作在 Server模式。 UDP 广播模式 此模式下,串口服务器将用UDP广播方式进行数据通讯,默认设置下,数据将被使用 UDP方式发往广播地址:255.255.255.255:7102,同时串口服务器从地址:255.255. 255.255:7101接收数据,用户也可以根据需要修改这些参数。 此模式可以实现单虚拟串口与多个串口服务器进行通讯的方案。也可以实现一个串口 服务器发送多串口服务器接收的一对多透传方案。 网段访问 给串口服务器指定一个有效的网关地址,就可以实现对串口服务器的网段访问。T CP/IP Server、Client模式支持网段访问。 TCP/IP Server模式 设置串口服务器的网关地址,为有效网关的IP地址。在网关上设置NAT规则,将串口 服务器的IP地址、监听端口映射为网关上的一个TCP/IP端口,向网关上的这个端口发 起连接,就可以与串口服务器建立通讯。 TCP/IP Client模式 设置串口服务器的网关地址,为有效网关的IP地址。并为串口服务器指定要连接的远 程主机地址,如果设置正确,串口服务器就可以通过网关与远程主机建立TCP/IP连接 UDP 广播模式 绝大部分情况下,UDP广播是无法网段的。 串口工作模式 流转发模式,

110,533

社区成员

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

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

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