关于winsock:多点和多播语义

基于Winsock的UDP组播通信入门 Winsock初始化过程:首先确保包含对应版本的头文件,然后保证链接对应的库文件(可以在代码中使用#pragma comment(lib, "WS2_32"),或在编译器项目属性中链接器->输入->附加依赖项中添加ws2_32.lib);接收端在本地绑定对应的固定端口,然后加入到组播的群组,最终实现数据的共享。否则根据发现的问题,提炼概念,百度或请人求教。UDP即用户数据报协议(UDP,User Datagram Protocol),无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 阅读详情

在考虑如何在Windows套接字2(Winsock)中支持多点和多播语义时,许多现有和提议的方案(包括IP多播,ATM点对多点连接,ST-II,T.120,H.320- MCU)进行了检查。 为了能够对各种方案进行连贯的讨论,首先要创建一个分类,以表征每个方案的基本属性,这是很有价值的。 在本文档中,术语“多点”表示多点和多播。

 

一、多点分类法

本节中描述的分类法首先将处理自身的控制平面与建立多点会话的方式从处理会话参与者之间的数据传输的数据平面区分开来。

控制平面中的会话建立

在控制平面中,有两种不同类型的会话建立:

  • 根
  • 没有根

在有根控制的情况下,存在一个特殊参与者c_root,它与该多点会话的其余成员不同,每个成员都被称为c_leaf。 c_root必须在多点会话的整个持续时间内保持存在,因为会话在没有c_root的情况下被中断。 c_root通常通过建立与c_leaf或多个c_leaf的连接来启动多点会话。 c_root可能会添加更多c_leaf,或者(在某些情况下)c_leaf可以在以后加入c_root。 有根控制平面的例子可以在ATM和ST-II中找到。

对于非根控制平面,属于多点会话的所有成员都是叶子,也就是说,不存在充当c_root的特殊参与者。 每个c_leaf必须将自己添加到始终可用的预先存在的多点会话中(如在IP多播地址的情况下),或者已通过某些超出Windows范围的带外(OOB)机制设置 套接字规范。

另一种看待这种情况的方法是c_root仍然存在,但可以认为是在网络云中,而不是其中一个参与者。 因为控制根仍然存在,所以也可以认为无根控制平面是隐式根。 这种隐式根多点方案的示例如下:

  • 电话会议桥。
  • IP组播系统。
  • H.320视频会议中的多点控制单元(MCU)。

数据平面中的数据传输

在数据平面中,有两种类型的数据传输样式:

  • 根
  • 没有根

在有根数据平面中,存在一个名为d_root的特殊参与者。 数据传输仅发生在d_root和此多点会话的其余成员之间,每个成员都称为d_leaf。 流量可以是单向的或双向的。 从d_root发出的数据被复制(如果需要)并传递到每个d_leaf,而来自d_leafs的数据仅传递给d_root。 在根数据平面的情况下,d_leaf之间不允许流量。 植根于数据平面的协议的示例是ST-II。

在非根数据平面中,所有参与者都是相等的,即,他们发送的任何数据都被传递给同一多点会话中的所有其他参与者。 同样,每个d_leaf节点都可以从所有其他d_leaf接收数据,在某些情况下,可以从未参与多点会话的其他节点接收数据。 没有特殊的d_root节点。 IP多播在数据平面中是无根的。

请注意,数据单元重复发生的位置,或者共享单个树或多个最短路径树是否用于多点分发的问题是协议问题,与应用程序用于执行多点通信的接口无关。 因此,本附录或Windows套接字界面中未解决这些问题。

下表描述了上述分类法,并指出了现有方案如何适合每个类别。 注意,似乎没有任何现有的方案采用无根控制平面以及有根数据平面。

Rooted control planeNonrooted (implicit rooted) control plane
Rooted data planeATM, ST-IINo known examples.
Nonrooted data planeT.120IP-multicast, H.320 (MCU)

 

 

二、用于多点和多播的Windows套接字2接口元素

已合并到Windows套接字2中以利用多点功能的机制可归纳如下:

  • WSAPROTOCOL_INFO结构中的三个属性位。
  • 为WSASocket的dwFlags参数定义的四个标志。
  • 一个函数WSAJoinLeaf,用于将叶节点添加到多点会话中。
  • 两个WSAIoctl命令代码,用于控制多点环回和多播传输的范围。

以下部分更详细地描述了这些界面元素:

  • 连接多点子叶的语义
  • 现有多点协议如何支持这些扩展

 

一)、WSAPROTOCOL_INFO结构中的属性

为了支持上述分类,WSAPROTOCOL_INFO结构中的三个属性参数分别用于区分控制和数据平面中使用的方案:

  • XP1_SUPPORT_MULTIPOINT的值为1表示此协议条目支持多点通信,并且以下两个参数是有意义的。
  • XP1_MULTIPOINT_CONTROL_PLANE指示控制平面是否为root(value = 1)或nonrooted(value = 0)。
  • XP1_MULTIPOINT_DATA_PLANE指示数据平面是否为root(value = 1)或nonrooted(value = 0)。

请注意,如果多点协议同时支持有根和无根数据平面,则每个条目都存在两个WSAPROTOCOL_INFO条目。

应用程序可以使用WSAEnumProtocols来发现给定协议是否支持多点通信,如果支持,则分别如何支持控制和数据平面。

 

二)、WSASocket的标志位

在某些情况下,连接到多点会话的套接字可能在点对点套接字的行为方面存在一些差异。 例如,根数据平面方案中的d_leaf套接字只能向d_root参与者发送信息。 这使得应用程序需要能够指示与其创建一致的套接字的预期用途。 这是通过四个标志位完成的,可以在dwFlags参数中设置为WSASocket:

  • WSA_FLAG_MULTIPOINT_C_ROOT,用于创建充当c_root的套接字,并且仅在相应的WSAPROTOCOL_INFO条目中指示有根控制平面时才允许。
  • WSA_FLAG_MULTIPOINT_C_LEAF,用于创建充当c_leaf的套接字,并且仅在相应的WSAPROTOCOL_INFO条目中指示XP1_SUPPORT_MULTIPOINT时才允许。
  • WSA_FLAG_MULTIPOINT_D_ROOT,用于创建充当d_root的套接字,并且仅在相应的WSAPROTOCOL_INFO条目中指示有根数据平面时才允许。
  • WSA_FLAG_MULTIPOINT_D_LEAF,用于创建充当d_leaf的套接字,并且仅在相应的WSAPROTOCOL_INFO条目中指示XP1_SUPPORT_MULTIPOINT时才允许。
     

请注意,在创建多点套接字时,必须在WSASocket的dwFlags参数中设置两个控制平面标志中的一个,以及两个数据平面标志中的一个。 因此,创建多点套接字的四种可能性是:

  • "c_root/d_root"
  • "c_root/d_leaf"
  • "c_leaf/d_root"
  • "c_leaf /d_leaf"

 

三)、SIO_MULTIPOINT_LOOPBACK WSAIoctl的命令代码

当在非根数据数据平面中使用d_leaf套接字时,希望将发出的流量收回到同一套接字上。 WSAIoctl的SIO_MULTIPOINT_LOOPBACK命令代码用于启用或禁用多点流量的环回。

 

四)、WSIOoctl的SIO_MULTICAST_SCOPE命令代码

当使用多播时,通常需要指定多播应发生的范围。 范围定义为要覆盖的路由网段数。 范围为零表示多播传输不会放在线路上,但可以在本地主机内的套接字上传播。 范围值1(默认值)表示传输将放置在线路上,但不会跨越任何路由器。 较高的范围值决定了可以越过的路由器的数量。 请注意,这对应于IP多播中的生存时间(TTL)参数。

函数WSAJoinLeaf用于将叶节点连接到多点会话。 有关如何使用此功能的讨论,请参阅以下内容。

 

 

三、连接多点子叶的语义

在下文中,通常通过在两个平面之一(控制或数据)中定义其角色来描述多点套接字。 应该理解,这个相同的插座在另一个平面中具有作用,但是为了使参考文献保持简短,没有提到这一点。 例如,当引用“c_root套接字”时,这可以是c_root / d_root或c_root / d_leaf套接字。

在有根控制平面方案中,新叶节点以两种不同方式中的一种或两种方式添加到多点会话。 在第一种方法中,root使用WSAJoinLeaf来启动与叶节点的连接并邀请它成为参与者。 在叶节点上,对等应用程序必须已创建c_leaf套接字并使用listen将其设置为侦听模式。 当被邀请加入会话时,叶节点接收FD_ACCEPT指示,并通过调用WSAAccept来表示其加入的意愿。 然后,根应用程序在连接操作完成时接收FD_CONNECT指示。

在第二种方法中,角色基本上是相反的。 根应用程序创建一个c_root套接字并将其设置为侦听模式。 希望加入会话的叶节点创建一个c_leaf套接字并使用WSAJoinLeaf来启动连接并请求准入。 当进入的准入请求到达时,根应用程序接收FD_ACCEPT,并通过调用WSAAccept来接受叶子节点。 叶子节点在被允许时接收FD_CONNECT。

在非根控制平面中,所有节点都是c_leaf,WSAJoinLeaf用于启动将节点包含到现有多点会话中。 当连接已完成且返回的套接字描述符在多点会话中可用时,提供FD_CONNECT指示。 在IP多播的情况下,这将对应于IP_ADD_MEMBERSHIP套接字选项。

(熟悉IP多播使用无连接UDP协议的读者可能会关注这里介绍的面向连接的语义。特别是在UDP套接字上使用WSAJoinLeaf并等待FD_CONNECT指示的概念可能会令人不安。但是, 将面向连接的语义应用于无连接协议的大量先例。例如,允许并且有时在UDP套接字上调用标准连接函数是有用的。将面向连接的语义应用于无连接套接字的一般结果是如何限制 这样的套接字也可以使用,这也是这种情况.WSAJoinLeaf中使用的UDP套接字会有一定的限制,等待FD_CONNECT指示(在这种情况下只是表明已经发送了相应的IGMP消息)是 一个这样的限制。)

因此,有三个实例应用程序将使用WSAJoinLeaf作为:

  • 多点root并邀请新叶加入会话
  • Leaf向根节点多点会话发出准入请求
  • Leaf寻求进入无根多点会话(例如,IP多播)

一)、使用WSAJoinLeaf

如前所述,函数WSAJoinLeaf用于将叶节点连接到多点会话。 WSAJoinLeaf具有与WSAConnect相同的参数和语义,除了它返回套接字描述符(如在WSAAccept中),并且它还有一个额外的dwFlags参数。

dwFlags参数用于指示套接字是仅作为发送方,仅作为接收方,还是两者兼有。 在此功能中,只有多点套接字可用于输入参数。 如果多点套接字处于非阻塞模式,则在收到相应的FD_CONNECT指示之前,返回的套接字描述符不可用。 多点会话中的根应用程序可以调用WSAJoinLeaf一次或多次以便添加多个叶节点,但是一次最多只有一个多点连接请求可能是未完成的。

WSAJoinLeaf返回的套接字描述符根据输入套接字描述符s是c_root还是c_leaf而不同。 当与c_root套接字一起使用时,name参数指定要添加的特定叶节点,并且返回的套接字描述符是与新添加的叶节点对应的c_leaf套接字。 它不是用于交换多点数据,而是用于接收特定c_leaf存在的连接的FD_XXX指示(例如,FD_CLOSE)。 一些多点实现还可以允许该套接字用于根和单个叶节点之间的侧聊。 如果相应的叶节点调用closesocket以退出多点会话,则接收该套接字的FD_CLOSE指示。 对称地,从WSAJoinLeaf返回的c_leaf套接字上调用closesocket会导致相应叶节点中的套接字获得FD_CLOSE通知。

当使用c_leaf套接字调用WSAJoinLeaf时,name参数包含根应用程序的地址(对于有根控制方案)或现有多点会话(无根控制方案),并且返回的套接字描述符与输入套接字描述符相同。 在根控制方案中,根应用程序通过调用listen将其c_root套接字置于侦听模式。 当叶节点请求将自身连接到多点会话时,传递标准FD_ACCEPT通知。 根应用程序使用通常的accept / WSAAccept函数来允许新的叶节点。 从accept或WSAAccept返回的值也是一个c_leaf套接字描述符,就像从WSAJoinLeaf返回的那样。 为了适应允许根启动和叶启动连接的多点方案,可以将已经处于侦听模式的c_root套接字用作WSAJoinLeaf的输入。

多点根应用程序通常负责有序地拆除多点会话。 这样的应用程序可以在c_root套接字上使用shutdown或closesocket来使所有关联的c_leaf套接字(包括从WSAJoinLeaf返回的套接字及其在远程叶节点中的相应c_leaf套接字)获得FD_CLOSE通知。

 

 

四、多点套接字与常规套接字之间的语义差异

在控制平面中,c_root套接字和常规的点对点套接字之间存在一些重要的语义差异:

  • 可以在WSAJoinLeaf中使用c_root套接字来加入新的叶子。
  • 将c_root套接字置于侦听模式(通过调用listen)并不排除在调用WSAJoinLeaf时使用c_root套接字来添加新叶,或者用于发送和接收多点数据。
  • 关闭c_root套接字会导致所有关联的c_leaf套接字获得FD_CLOSE通知。

c_leaf套接字和控制平面中的常规套接字之间没有语义差异,除了可以在WSAJoinLeaf中使用c_leaf套接字,并且在listen中使用c_leaf套接字表示只应接受多点连接请求。

在数据平面中,d_root套接字和常规点对点套接字之间的语义差异是:

  • 在d_root套接字上发送的数据将传递到同一多点会话中的所有叶子。
  • 在d_root套接字上接收的数据可以来自任何叶子。

根数据平面中的d_leaf套接字与常规套接字没有语义差异,但是,在非根数据平面中,在d_leaf套接字上发送的数据将转到所有其他叶节点,并且接收的数据可能来自任何其他叶子节点。 如前所述,有关d_leaf套接字是否位于有根或无根数据平面的信息包含在套接字的相应WSAPROTOCOL_INFO结构中。

 

 

五、现有多点协议如何支持这些扩展

以下主题说明如何通过Windows套接字2多点功能访问IP多播和ATM点对多点功能。 我们选择这两个作为例子,因为它们很受欢迎且很容易理解。

 

一)、IP Multicast

IP组播属于非根数据平面和非根控制平面的类别。 所有应用程序都发挥着作用。 目前,大多数IP多播实现使用Steve Deering向Internet工程任务组(IETF)提出的一组套接字选项。 因此提供了五种操作:

  • IP_MULTICAST_TTL - 设置生存时间,控制多播会话的范围。
  • IP_MULTICAST_IF - 确定用于多播的接口。
  • IP_ADD_MEMBERSHI - 加入指定的多播会话。
  • IP_DROP_MEMBERSHIP - 丢弃多播会话。
  • IP_MULTICAST_LOOP - 控制多播流量的环回。

设置IP多播套接字的生存时间直接映射到使用WSAIoctl的SIO_MULTICAST_SCOPE命令代码。

确定用于多播的IP接口的方法是通过特定于TCP / IP的套接字选项,如Windows套接字2协议特定附件中所述。 其余三个操作都包含在此处描述的Windows套接字2语义中。

应用程序将在WSASocket中打开带有c_leaf / d_leaf标志的套接字。 它将使用WSAJoinLeaf将其自身添加到为多播操作指定的默认接口上的多播组。 如果WSAJoinLeaf中的标志指示此套接字仅是发送方,则加入操作本质上是无操作,并且不需要发送IGMP消息。 否则,将IGMP分组发送到路由器以指示对接收发送到指定多播地址的分组的兴趣。 由于应用程序创建了仅用于执行多播的特殊c_leaf / d_leaf套接字,因此标准的closesocket函数将用于退出多播会话。 WSAIoctl的SIO_MULTIPOINT_LOOPBACK命令代码提供了一种通用控制机制,用于确定是否也可以在同一套接字上接收在非根数多点方案中在d_leaf套接字上发送的数据。

注意

Winsock版本的IP_MULTICAST_LOOP选项在语义上与UNIX版本的IP_MULTICAST_LOOP选项不同:

  • 在Winsock中,IP_MULTICAST_LOOP选项仅适用于接收路径。
  • 在UNIX版本中,IP_MULTICAST_LOOP选项适用于发送路径。

例如,应用程序ON和OFF(比X和Y更容易跟踪)在同一接口上加入同一组; 应用程序ON将打开IP_MULTICAST_LOOP选项,应用程序OFF将关闭IP_MULTICAST_LOOP选项。 如果ON和OFF是Winsock应用程序,OFF可以发送到ON,但ON不能发送到OFF。 相反,如果ON和OFF是UNIX应用程序,ON可以发送到OFF,但OFF不能发送到ON。

 

二)、ATM Point to Multipoint

ATM属于有根数据和有根控制平面的范畴。 作为根的应用程序将创建c_root套接字,并且在叶节点上运行的对应项将使用c_leaf套接字。 根应用程序使用WSAJoinLeaf添加新的叶节点。 叶节点上的相应应用程序将其c_leaf套接字设置为侦听模式。 指定了c_root套接字的WSAJoinLeaf将映射到Q.2931 ADDPARTY消息。 ATM UNI 3.1不支持叶启动的连接,但ATM UNI 4.0支持。 因此,指定了c_leaf套接字的WSAJoinLeaf将映射到相应的ATM UNI 4.0消息。

对于ATM点对多点,还需要考虑其他因素:

  • 向ATM点对多点会话添加新的子叶仅基于邀请。 root通过调用WSAJoinLeaf函数来邀请子叶 - 它们已经接受了函数调用。
  • ATM点对多点会话中的数据流仅来自根到叶;子 叶不能使用相同的会话向根发送信息。
  • 每个ATM适配器只允许一个子叶。
化学气相沉积CVD工艺中MKS下游排气高速节流阀的国产化替代方案及产品 对标MKS、VAT和CDK等国外公司的下游排气高速节流阀系列产品,本文介绍了相应的国产化替代方案和产品。基于CVD工艺,技术方案将下游流量调节阀变为了下游压力调节阀,并采用分体结构,将调压阀与PID控制器分离,调压阀具备大口径和高速功能,电子气控驱动调压阀快速动作,PID控制器接收真空计信号和控制气控驱动阀,可实现阀门全开时间小于0.1秒。 阅读详情

相关推荐

01 底盘制动产品之轮速传感器

轮速传感器是用来测量汽车车轮转速的传感器。对于现代汽车而言,轮速信息是必不可少的,汽车动态控制系统(VDC)、汽车电子稳定程序(ESP)、防抱死制动系统(ABS)、自动变速器的控制系统等都需要轮速信息。

汽车软件工程师 | 好奇博主 | 处女座 4656

Visual C++实现局域网IP多播

<br />在局域网中,管理员常常需要将某条信息发送给一组用户。如果使用一对一的发送方法,虽然是可行的,但是过于麻烦,也常会出现漏发、错发。为了更有效的解决这种组通信问题,出现了一种多播技术(也常称为组播通信),它是基于IP层的通信技术。为了帮助读者理解,下面将简要的介绍一下多播的概念。<br />    众所周知,普通IP通信是在一个发送者和一个接收者之间进行的,我们常把它称为点对点的通信,但对于有些应用,这种点对点的通信模式不能有效地满足实际应用的需求。例如:一个数字电话会议系统由多个会场组成,当在其中

xdsoft365的专栏 1079

逆向实战:拼多多anti-content加密参数的全链路解析与动态对抗策略

本文深入解析了拼多多anti-content加密参数的全链路生成逻辑与动态对抗策略。通过逆向工程实战,详细拆解了包含设备指纹、用户行为采集和动态密钥生成在内的12个关键环节,并提供了可持续对抗的精准模拟方案和自动化更新机制,帮助开发者有效应对拼多多的反爬体系。

weixin_30687051的博客 160

关于组播和WSAJoinLeaf

1. WSASocket的参数 WSA_FLAG_MULTIPOINT_C_LEAF,WSA_FLAG_MULTIPOINT_D_LEAF用于创建一个无根套接字,简单说就是组播组里面各成员是平等的,而 有根的话是有一个主成员,就好比一个服务器对多个客户端模式,具体解释可参考。有根模式是用于ATM协议的,IP协议用的都是无根 模式。 2. WSAJoinLeaf仅仅用于加入组播组,一个组是用组

学而不思则罔 3936

1、Ovirt 开源虚拟化平台安装

Ovirt虚拟化Node和Engine安装

大鱼 6266

FMQL开发环境实战:从零构建国产FPGA SoC的软件基石

本文详细解析了构建国产复旦微FMQL FPGA SoC软件开发环境的完整流程。针对开发者在环境搭建中遇到的核心痛点,文章深入剖析了Procise、IAR与Vivado三大工具的协同角色与版本选择,提供了从软件下载、安装避坑到核心配置的实战指南,并总结了常见问题的排查方法,旨在帮助开发者高效跨过FMQL开发的“第一道坎”。

weixin_29215391的博客 125

多点通讯与多址广播语义

B.1  多点通讯与多址广播引言<br />       考虑到如何在WinSock 2中支持多点通讯(multipoint)与多址广播(multicast),我们研究了一些现存的和提议的多点通讯/多址广播方案(包括IP-multicast、ATM点对多点连接、ST-II、T.120和H.320 (MCU))。在一些公共方面,每一种方案都与其它方案有很大的不同。为了对不同的方案有一个一致的讨论,首先建立一个分类法来刻画每一种方案的本质属性是很有价值的。为简单起见,在后面我们将使用术语

学而不思则罔 1087

STM32与SD卡SPI接口硬件设计:从原理图到调试的完整指南

SPI(串行外设接口)作为一种广泛应用的同步串行通信协议,以其接线简单、驱动成熟的特点,成为连接微控制器与各类外设的经典方案。其工作原理基于主从架构,通过时钟、数据线和片选信号实现全双工通信,在嵌入式系统中具有极高的技术价值,常用于连接传感器、存储设备和显示模块等。在数据存储场景中,SD卡凭借其大容量和便携性成为首选,而通过SPI模式驱动SD卡,则平衡了性能与设计复杂度。本文聚焦于使用Altium Designer进行硬件设计的工程实践,详细解析了STM32微控制器与SD卡通过SPI通信时,电源管理、上拉电

weixin_34101784的博客 555

C++远程监控系统发送端-play.cpp : IP组播套接字

C++远程监控系统发送端-play.cpp : IP组播套接字

D20187的博客 568

分享通达信破解交易接口的使用!

那其实通达信破解交易接口的使用方法比较复杂,这里以MA均线指标为例子,只要理解了这些操作步骤,就可以很容易地使用其他指标包括自己编写的指标来进行交易。委托结果(包含委托编号), 需要分配 1024*1024 字节的空间。委托结果数组, 每项结果需要分配 1024*1024 字节的空间。0: 买入, 1: 卖出, 2: 融资买入, 3: 融券卖出,4: (市价委托)上海五档即成剩撤, 深圳五档即成剩撤。4: 买券还券, 5: 卖券还款, 6: 现券还券。0: 上海限价委托, 深圳限价委托。

1841085904的博客 2358

10、现代统计方法:趋势面分析、薄板样条与广义线性模型

本文系统介绍了空间预测建模中的三种现代统计方法:趋势面分析(TSA)、薄板样条(TPS)和广义线性模型(GLM)。详细阐述了每种方法的原理、实现步骤、参数优化与预测评估,并结合R语言代码示例展示了在实际数据中的应用。文章还提供了方法对比流程图与土壤湿度预测案例,帮助读者根据数据特征选择合适模型,提升空间预测的准确性与可靠性。

play7的博客 157

「多播」WinSock下基于IP协议的多播实现示例

演示如何建立IP多播套接口和相关设置,并使用该套接口发送和接受多播数据.

孤云出岫, 去留一无所系. 朗镜悬空,静躁两不相干. 2849

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—ISP图像处理开发案例

创龙科技研发的 TL3588-EVM 评估板具备强大视频处理能力,可满足多场景视频开发需求。为助力开发者快速上手,本文整理 7 个实用视频开发案例,涵盖从采集到显示的全流程,详细说明各案例的硬件连接、参数配置与代码解析,帮助开发者高效实现评估板视频相关功能开发与调试。

创龙,嵌入式一体化解决方案商 207

Winsock编程之多播

设计报文广播方式的最初目的是用于资源发现和减少数据交互量。但事实上,由于报文广播,同一网段内的所有主机,无论有没有参与广播应用,都必须完成对数据的处理。被广播的UDP报文会被接受主机的系统协议栈逐层处理,直到传输层将其交付监听相应端口的应用进程或者丢弃。因此,频繁的大数据量的报文广播会严重影响网络上的其他主机的正常运行。而多播方式在具有广播的优点的同时,很好地解决了这个问题。下面就开始我们的多

Melody_1208的专栏 1532

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

关于Winsock:Winsock编程注意事项:与协议无关的多播和多点

Windows套接字2提供了利用传输的多点和多播功能的通用方法。 这种通用方法实现了这些功能,就像它允许访问许多传输协议的基本数据传输功能一样。 术语“多点”在下文中用于指代多播和多点通信。 当前的多点实现(例如,IP多播,ST-II,T.120和ATM UNI)变化很大。 节点如何加入多点会话,特定节点是指定为中心节点还是根节点,以及数据是在所有节点之间交换还是仅在根节点与各种叶节点之间交换,...

一世豁然的专栏 411

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

winsock 多播(组播)

通过两个程序示例,说明组播的原理。

馋嘴猪没胃口 4316

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

用VC在局域网实现IP多播通信

在局域网中,管理员常常需要将某条信息发送给一组用户。如果使用一对一的发送方法,虽然是可行的,但是过于麻烦,也常会出现漏发、错发。为了更有效的解决这种组通信问题,出现了一种多播技术(也常称为组播通信),它是基于IP层的通信技术。为了帮助读者理解,下面将简要的介绍一下多播的概念。  众所周知,普通IP通信是在一个发送者和一个接收者之间进行的,我们常把它称为点对点的通信,但对于有些应用,这种点对点的通信

Mobidogs Blog 3114

IP多播技术及其编程(转载自http://www.zq.com.cn/)

IP多播(也称多址广播或组播)技术,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术。多播作为一点对多点的通信,是节省网络带宽的有效方法之一。在网络音频/视频广播的应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有多播才是最好的选择。多播能使一个或多个多播源只把数据包发送给特定

快活阿刀的专栏 2775

IP多播技术及其编程

IP多播应用的编程方法  在实际应用中,编程人员通常需要自己编制底层网络应用程序来实现网上的底层通信,如具体实现IP多播通信的功能。编制底层网络应用程序通常要借助于网络数据通信编程接口,而在不同的操作系统中所提供的网络编程接口是有所不同的,如在Microsoft Windows环境下的网络编程接口就是Windows套接字(Windows Socket,简称Winsock)。 Winsock

飞翔吧胖子的专栏 874

网络编程之多播

单播数据只能发送给单个目的主机,一个发送方、一个接收方,两个主机间的通信不影响其他主机。广播数据是通过广播地址将数据发送给局域网上的所有主机,广播一般只在单个局域网中传播。 多播和广播一样也是将数据发送给多个主机,但仅将数据发送给属于相同多播组的主机,而且多播数据能通过路由器进行传播。.........

老毛的博客 1393

socket下的广播与多播实现

一、广播:广播是指在一个局域网中向所有的网上节点发送信息。这是UDP连接的一种。1.初始化 :WSAStartup(MAKEWORD(2,2),&wsad);2.创建一个UDP的socket :s=socket(AF_INET,SOCK_DGRAM,0);3.如果这个socket希望收到信息,则需要绑定地址和这组广播的端口号,如果只是希望发送...

weixin_34375054的博客 722

WinSock 2.0 函数一览

共有的函数和 WinSock 2.0 新增特性WinSock 1.1WinSock 2.0新增特性accept()WSAAccept()重叠I/O有条件地接受连接数据服务质量socket组connect()WSAConnect()重叠I/O连接数据服务质量htonl()WSAHtonl()协议独立htons()WSAHtons()协议独立inet_addr()WSAAddressToString(...

struct{SB} 1086

windows 多播实现

在局域网中,管理员常常需要将某条信息发送给一组用户。如果使用一对一的发送方法,虽然是可行的,但是过于麻烦,也常会出现漏发、错发。为了更有效的解决这种组通信问题,出现了一种多播技术(也常称为组播通信),它是基于IP层的通信技术。为了帮助读者理解,下面将简要的介绍一下多播的概念。  众所周知,普通IP通信是在一个发送者和一个接收者之间进行的,我们常把它称为点对点的通信,但对于有些应用,这种点对点的通信

1069

c++局域网多播

转自http://www.51cto.com/specbook/17/35216.htm Visual C++实现局域网IP多播 在局域网中,管理员常常需要将某条信息发送给一组用户。如果使用一对一的发送方法,虽然是可行的,但是过于麻烦,也常会出现漏发、错发。为了更有效的解决这种组通信问题,出现了一种多播技术(也常称为组播通信),它是基于IP层的通信技术。为了帮助读者理解,下面将简要的介绍...

dianziyuan8553的博客 666

SOCKET IP多播

IP多播 以前的笔记,注释都在代码里,移过来了。 // IP多播.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include <iostream> #include <process.h> #include <WinSock2.h> #include <ws2ipdef.h> #pragma comment(lib,"ws2_32.lib") #pragma warning(disabl

Doub1's Blog 1271

读书笔记: 局域网中实现多播(zt)

 读书笔记: 局域网中实现多播 最近一直在看>这本书,觉得这本书很适合初学socket编程的人(比如说我自己 ^_^ )。我一直对于多播的实现比较模糊,在看了书上的多播部分的介绍,才发现在程序中实现一个基本的多播功能是如此简单。在这里我不想照本宣科的大说什么理论,概念的东东,我的目的是说明在我们的代码中如何实现多播功能。开发环境: VC 6.0(sp5), 使用winsock2(ws2_32.li

wuyunlong的专栏 867
上一篇: 关于winsock:注册和名称解析
下一篇: 关于winsock:Internet协议版本6(IPv6)
一世豁然
博客等级 码龄15年 1276粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值