当前位置:首页 » 编程语言 » 接收组播数据c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

接收组播数据c语言

发布时间: 2022-07-06 18:06:33

㈠ win7无法接受组播数据

Windows 包含“媒体感知”功能。在使用传输控制协议/Internet 协议 (TCP/IP) 且基于 Windows 的计算机上,Windows 会检测网络媒体是否处于“链接状态”。只要 Windows 检测到媒体处于“故障”状态,它就会从该适配器中删除绑定的协议,直到检测到该适配器重新“正常工作”时为止。
你的异常应该就是Windows 检测检测不到正常造成的。也就是说你需要更改系统注册表以使系统网络适配器检测此状态。
(提醒下,修改注册表之前,一定要先进行备份,修改此注册表有一定风险,若因错误操作可能需要重装系统。步骤是微软提供的。)

要禁止网络适配器检测该链接状态,请按照下列步骤操作。

注意:NetBEUI 和 IPX 无法识别“媒体感知”。
使用注册表编辑器 (Regedt32.exe) 来查看下面的注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
添加以下注册表值:
数值名称:DisableDHCPMediaSense
数据类型:REG_DWORD - 布尔值
数值数据范围:0、1(False、True)默认值:0 (False)
说明:此参数控制 DHCP 媒体感知行为。如果将此数值数据设置为 1,DHCP(甚至非 DHCP)客户端就会忽略来自接口的媒体感知事件。默认情况下,媒体感知事件触发 DHCP 客户端执行操作,例如,试图获取租约(当发生连接事件时),或者使接口和路由无效(当发生连接断开事件时)。
重新启动计算机。
注意:在 Windows Server 2003 中,控制媒体感知的函数已添加到群集系统中。即使注册表中的 DisableDHCPMediaSense 未经设置或设置为 0 (False),群集系统也会将媒体感知更改为已禁用。随后,由于要启用媒体感知的系统的需要,DisableClusSvcMediaSense 注册表值被引入到 SP1 中。通过使用以下注册表子项,可以设置群集系统的控制函数的打开/关闭:

- 项:HKEY_LOCAL_MACHINE\Cluster\Parameters
- 数值名称:DisableClusSvcMediaSense
- 数据类型:REG_DWORD - 布尔值
- 数据范围:0、1(False、True)- 默认值:0 (False)。

DisableClusSvcMediaSense 默认值为 0 (False)。因此,控制函数处于打开状态,而媒体感知处于禁用状态。可以将 DisableClusSvcMediaSense 设置为 1 (True)。这样,控制函数变为关闭状态。之后,您便可以使用 DisableDHCPMediaSense 注册表项设置媒体感知的启用/禁用状态了。这与 Windows 2000 Server 中的群集环境类似。

注意:如果您禁用“媒体感知”功能,则可能会遇到一些问题。例如,假设您的计算机上安装了两个网络适配器,如果在您禁用“媒体感知”功能后,其中的一个网络适配器不能工作,则该适配器将取消绑定。此外,如果配置了默认网关,则会删除关联的路由,以使所有通信通过另一个网络适配器进行。

另举一例,当您从计算机上断开网络电缆时,如果禁用了“媒体感知”功能,则通知区域的“本地连接”图标将显示“网络电缆没有插好”状态消息。此外,当您运行“ipconfig”命令时,会收到“Media State .....:Cable Disconnected”消息。但在此情况下,网络适配器已绑定到 TCP/IP。要验证网络适配器是否已绑定到 TCP/IP,请查看路由表。要查看路由表,请使用“route print”命令。路由表可显示网络适配器的 IP 地址。还可以使用“ping”命令 ping 网络适配器的 IP 地址,以验证网络适配器是否已绑定到 TCP/IP。

㈡ C# UdpClient组播, 怎么接收指定IP 的信息,其他的略过,给个例子最好

数据报socket接收的结构体里附带着发送端IP,在这一步筛选一下应该可以

㈢ 网上找的Linux环境下基于ip组播的通信实现相关代码,怎么一直接收不到数据,求帮忙。

Linux环境下基于ip组播的通信实现相关代码这个其实不难来拿即可。

㈣ c++ udp 组播问题

做一个发送确认机制,一个简单的协议。
请求端先发送请求,服务端回应
服务端发回文件第一个包,客户端回应
…………
发送完毕

㈤ Vc++组播问题

你的问题可能是发送队列太小的缘故 如果发送太快就会出现队列满的情况. 建议在发送前加一个可以动态增长的队列保存发送数据

给你一个网络的资料
http://ke..com/view/569217.htm

㈥ c# UdpClient如何实现组播要求一对多相互发送和接收信息。

不用..一个就可以了...又可以组播又可以单播

收发都是啊~~~一个就能完成功能了.

组波还是单播都是使用Send函数.只是IPEndPoint这个参数不一样..何必用2个发呢....不同的发送方式.只需要修改这个参数就可以了啊

_localIpAddress = GetLocalIpAddress();

_msgSocket = new UdpClient(new IPEndPoint(IPAddress.Parse(_localIpAddress),_msgPort));
_msgSocket.EnableBroadcast = true;
_msgSocket.JoinMulticastGroup(_groupIP);

/// <summary>
/// 组播消息
/// </summary>
/// <param name="msg"></param>
public static void SendMsgToAll(string msg)
{
try
{
byte[] buffer = Encoding.Default.GetBytes(msg);
_msgSocket.Send(buffer, buffer.Length,_groupEP);
}
catch (Exception err)
{
throw err;
}
}

/// <summary>
/// 发送消息给指定IP
/// </summary>
/// <param name="msg">要发送的消息</param>
/// <param name="ip">接收方的IP地址</param>
public static void SendMsgToOne(string msg,string ip)
{
try
{
byte[] buffer = Encoding.Default.GetBytes(msg);
_msgSocket.Send(buffer, buffer.Length, new IPEndPoint(IPAddress.Parse(ip), _msgPort));
}
catch (Exception err)
{
throw err;
}
}

只要替换最后一个参数.就实现了组播和单播.

c语言实现基于遗传算法的时延受限组播路由选择(受限最小生成树)

啊~~我们也学遗传算法呢~
代码已经发到你的邮箱里了,请及时查看的~
有什么问题可以Hi我呀,交流下

㈧ 有谁能给我贴一份可用的 UDP 组播代码吗

组播技术可形象的描述如下:
假设一个企业分布于各地的子公司(两个以上)之间需要通过Internet进行实时的交换信息(数据,声音,图像),他们的计算机可能不属于同一物理网 络,甚至不属于同一自治系统,这种通信的特点是“多点”式的。子公司发出的数据希望其他子公司都能收到,而总部发出的指示全体子公司都应收到。这种多点通信方式为组内广播,即组播技术,也称多播技术,多目网关技术。
1.2、TCP/IP传送方式
组播技术是TCP/IP传送方式的一种。在我们讨论组播技术之前先来看看TCP/IP传送方式。TCP/IP传送方式有三种:单播,广播,组播。
单播(Unicast)传输:在发送者和每一接收者之间需要单独的数据信道。 如果一台主机同时给很少量的接收者传输数据,一般没有什么问题。但如果有大量主机希望获得数据包的同一份拷贝时却很难实现。这将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。
组播(Multicast)传输:它提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。
广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网主机都投递一份数据包,不论这些主机是否乐于接收该数据包。然而广播的使用范围非常小, 只在本地子网内有效,因为路由器会封锁广播通信。广播传输增加非接收者的开销。
组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。 组播源把数据包发送到特定组播组,而只有属于该组播组的地址才能接收到数据包。组播可以大大的节省网络带宽, 因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。 它提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络, 也可以来自不同的物理网络(如果有组播路由器的支持)。