谁能详细的介绍一下SocketType 枚举?

BATTLERxANGE 2010-03-09 11:20:22
MSDN中是这样的:
Stream 支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界。此类型的 Socket 与单个对方主机进行通信,并且在通信开始之前需要远程主机连接。Stream 使用传输控制协议 (Tcp) ProtocolType 和 InterNetworkAddressFamily。
Dgram 支持数据报,即最大长度固定(通常很小)的无连接、不可靠消息。消息可能会丢失或重复并可能在到达时不按顺序排列。Dgram 类型的 Socket 在发送和接收数据之前不需要任何连接,并且可以与多个对方主机进行通信。Dgram 使用数据报协议 (Udp) 和 InterNetworkAddressFamily。
Raw 支持对基础传输协议的访问。通过使用 SocketTypeRaw,可以使用 Internet 控制消息协议 (Icmp) 和 Internet 组管理协议 (Igmp) 这样的协议来进行通信。在发送时,您的应用程序必须提供完整的 IP 标头。所接收的数据报在返回时会保持其 IP 标头和选项不变。
Rdm 支持无连接、面向消息、以可靠方式发送的消息,并保留数据中的消息边界。RDM(以可靠方式发送的消息)消息会依次到达,不会重复。此外,如果消息丢失,将会通知发送方。如果使用 Rdm 初始化 Socket,则在发送和接收数据之前无需建立远程主机连接。利用 Rdm,您可以与多个对方主机进行通信。
Seqpacket 在网络上提供排序字节流的面向连接且可靠的双向传输。Seqpacket 不重复数据,它在数据流中保留边界。Seqpacket 类型的 Socket 与单个对方主机通信,并且在通信开始之前需要建立远程主机连接。
Unknown 指定未知的 Socket 类型。


注意:
SocketType 有时会隐式指示在 AddressFamily 中使用哪个 ProtocolType。例如,当 SocketType 为 Dgram 时,ProtocolType 始终为 Udp。当 SocketType 为 Stream 时,ProtocolType 始终为 Tcp。如果试图使用不兼容的组合创建 Socket,则 Socket 将引发 SocketException。


请问RDM和Seqpacket使用什么协议?TCP吗?如果是的话,MSDN中说会保留边界,即不会出现沾包的问题,那么使用它们的话可以吗?这和Stream有什么区别呢?
...全文
790 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
BATTLERxANGE 2010-03-09
  • 打赏
  • 举报
回复
没人知道吗? 回复内容太短了!
guoyichao 2010-03-09
  • 打赏
  • 举报
回复
RDM是给多播协议用的,Seqpacket应该是局域网簇ipx之类用的。

111,104

社区成员

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

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

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