System.Net.Sockets.Socket()如何使用它的参数?

3
创建一个此类的新实例时,您需要指定SocketTypeProtocolType。我想要一个Stream类型的SocketType。在Stream成员的描述中,它说:"stream使用TCP ProtocolType。"然而,我仍然可以手动指定不同的ProtocolType,如UDP、ICMP、IGMP等。
但是,我不确定在更低层次上如何工作——如果我做这样的事情... new NetworkStream(new Socket(SocketType.Stream, ProtocolType.Icmp)) 那么我会将流包装在ICMP流量中吗(意味着在ICMP头中传输流数据)?请尽可能提供更多信息,以便我能够理解它在底层实际上是如何工作的。

实际上,您正在创建一个新的 Stream 实例,因此不应该包装任何内容。 - darkdog
那么您的建议是,在给定的示例中,“ProtocolType.Icmp”基本上被抛弃/忽略了? - Zee
2
请注意 构造函数 的允许异常:"SocketException: socketTypeprotocolType 的组合导致了无效的套接字。" - 您不能随意混合和匹配这些类型。 - Damien_The_Unbeliever
1个回答

1

Socket构造函数提供了这样的解释:"socketType和protocolType的组合导致了一个无效的套接字。"

这意味着在底层实际上什么也没有做。它会抛出异常并且永远不会到达底层的winsock函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接