Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多播端口号是什么?_C#_Sockets_Networking - Fatal编程技术网

C# 多播端口号是什么?

C# 多播端口号是什么?,c#,sockets,networking,C#,Sockets,Networking,在尝试将套接字绑定到多播IP地址时,C#.NET framework套接字类遇到一些问题。在Microsoft的Bind()方法文档(请参阅下面的链接)中,它们警告“如果要接收多播数据报,必须使用多播端口号调用Bind方法。” 我不相信端口号是多播/单播/广播特定的。你知道微软是什么意思吗 多播地址包括特定的IP地址和端口号。这不是我们传统上认为的机器(客户机或服务器)的IP地址,它是单播协议的一部分 多播地址,在IPV4术语中,是224.n.n.n到239.n.n.n 基本上,地址的前4位是1

在尝试将套接字绑定到多播IP地址时,C#.NET framework套接字类遇到一些问题。在Microsoft的Bind()方法文档(请参阅下面的链接)中,它们警告“如果要接收多播数据报,必须使用多播端口号调用Bind方法。”

我不相信端口号是多播/单播/广播特定的。你知道微软是什么意思吗


多播地址包括特定的IP地址和端口号。这不是我们传统上认为的机器(客户机或服务器)的IP地址,它是单播协议的一部分

多播地址,在IPV4术语中,是224.n.n.n到239.n.n.n

基本上,地址的前4位是1110

在该范围内有特定的子范围,用于定义的目的

你基本上选择了一个地址和一个没有其他应用程序使用的端口。您可能希望使用239.n.n.n范围内的地址,因为这是为“管理范围”保留的,基本上是“留在我的网络上”(尽管网络工程师可能会对该描述感到满意)

下面是一个示例,显示了客户端和服务器之间的连接:

(代码格式化在中间失败,服务器的结束和客户机的开始已经合并在一起,一些应该是文本的东西,但是你会解决这个问题)。 看他们都连接在同一个IP地址和同一个端口上

本页演示了我的意思,第一个for bit是1110,并链接到ipv6多播的讨论: (还有很多关于单播的信息,这就是大多数互联网流量)

当然,维基百科也有一些讨论。

如果多播连接支持UDP,则多播端口应设置为4003。
我能想到的“多播端口”区别的唯一原因是,如果为UDP或TCP以外的协议打开了套接字连接,但同一远程主机需要TCP/UDP多播连接。

我理解多播地址是什么,但Microsoft所说的“多播端口号”是什么意思它们似乎暗示只有一些端口号可以用于多播地址。@Ryan,端口号是第4层协议的地址,实际上与多播(IP,第3层)地址无关。如果用于多播的第4层协议是UDP(通用),则UDP需要端口号。UDP不知道您使用的是单播、广播还是多播。这就是我的想法。但是微软所说的“多播端口号”是什么意思呢?多播必须使用UDP,UDP使用端口号作为其地址。进程将绑定到特定的UDP端口号,即使对于多播也是如此。多播使用UDP,但不能使用TCP,因为TCP只在两台主机之间创建连接,而多播将流量发送到多台主机。多播使用UDP,因为UDP是无连接的。@RonMaupin您是对的,我忘记了这一点,我将编辑我的答案。谢谢