【问题标题】:How to can I set the Type of Service bits in C#?如何在 C# 中设置服务类型位?
【发布时间】:2015-05-07 11:31:50
【问题描述】:

我正在编写一个通过网络发送数据的应用程序,并且需要知道是否可以在 IP 数据包标头中设置服务类型 (ToS) 位。任何人都知道这是否受 C# 支持,如果支持,我应该如何实现它?

我知道我可以使用原始套接字类型并指定我自己的标头,但我宁愿不必这样做,因为我只使用 TCP,所以创建一个完整的标头似乎有点毫无意义,所以我可以设置三位,如果不设置这些位可以自动创建。

任何建议将不胜感激。

【问题讨论】:

    标签: c# networking tcp header


    【解决方案1】:

    这不行吗? (几乎直接来自 TcpClient.Client 帮助)

    TcpClient client = new TcpClient();
    Socket s = client.Client;
    
    if (!s.Connected)
    {
       s.SetSocketOption(SocketOptionLevel.IP, 
                         SocketOptionName.TypeOfService, 2);
    }
    

    不确定您要将其设置为什么值,但这应该可以...

    【讨论】:

    • 谢谢,这正是我要找的。不过我不太确定它的价值。我认为需要进行一些实验!
    • 这在 XP 和更高版本下不起作用,请参阅 support.microsoft.com/kb/248611。邪恶的 SetSocketOption 返回没有报告任何问题,但是没有设置 TOS 字节。
    猜你喜欢
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    相关资源
    最近更新 更多