Exemplo n.º 1
0
        /// <summary>
        /// 设置IP协议参数。
        /// </summary>
        /// <param name="socket">socket实例,必须在bind之后。</param>
        /// <param name="level">参数。</param>
        public static void SetIPProtectionLevel(System.Net.Sockets.Socket socket, System.Net.Sockets.IPProtectionLevel level)
        {
            if (level == System.Net.Sockets.IPProtectionLevel.Unspecified)
            {
                CommonException.ThrowArgument("无效的level参数:" + level);
            }
            if (socket.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
            {
#if net20 || net35
                socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.IPv6, (System.Net.Sockets.SocketOptionName) 23, (int)level);
#else
                socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.IPv6, System.Net.Sockets.SocketOptionName.IPProtectionLevel, (int)level);
#endif
            }
            else
            {
                if (socket.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    CommonException.ThrowNotSupported("暂不支持此网络地址类型:" + socket.AddressFamily);
                }
#if net20 || net35
                socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.IP, (System.Net.Sockets.SocketOptionName) 23, (int)level);
#else
                socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.IP, System.Net.Sockets.SocketOptionName.IPProtectionLevel, (int)level);
#endif
            }
        }
Exemplo n.º 2
0
 public void SetIPProtectionLevel(System.Net.Sockets.IPProtectionLevel level)
 {
     throw null;
 }