[fix]修正UdpServer在接收广播时连续启动接收的错误,在StarAgent中,此时可能收到广播包,SocketFlags是Broadcast,需要清空,否则报错“参考的对象类型不支持尝试的操作”; 无需设置SocketOptionName.PacketInformation,在ReceiveMessageFromAsync时会自动设置,并且支持ipv6;
石头 编写于 2024-10-10 00:36:00 石头 提交于 2024-10-10 00:45:43
X
using System.ComponentModel;
using NewLife.Configuration;

namespace NewLife.Net;

/// <summary>网络设置</summary>
[Obsolete("=>SocketSetting")]
public class Setting : SocketSetting { }

/// <summary>网络设置</summary>
[DisplayName("网络设置")]
[Config("Socket")]
public class SocketSetting : Config<SocketSetting>
{
    #region 属性
    /// <summary>网络调试</summary>
    [Description("网络调试")]
    public Boolean Debug { get; set; }

    /// <summary>会话超时时间。每个Tcp/Udp连接会话,超过一定时间不活跃时做超时下线处理,默认20*60秒</summary>
    [Description("会话超时时间。每个Tcp/Udp连接会话,超过一定时间不活跃时做超时下线处理,默认20*60秒")]
    public Int32 SessionTimeout { get; set; } = 20 * 60;

    /// <summary>缓冲区大小。每个IOCP异步接收缓冲区的大小,较大的值能减少小包合并,但是当连接数很多时会浪费大量内存,默认8k</summary>
    [Description("缓冲区大小。每个IOCP异步接收缓冲区的大小,较大的值能减少小包合并,但是当连接数很多时会浪费大量内存,默认8k")]
    public Int32 BufferSize { get; set; } = 8 * 1024;

    /// <summary>收发日志数据体长度。应用于LogSend/LogReceive时的数据HEX长度,默认64字节</summary>
    [Description("收发日志数据体长度。应用于LogSend/LogReceive时的数据HEX长度,默认64字节")]
    public Int32 LogDataLength { get; set; } = 64;

    ///// <summary>启用Http压缩。内部新建的HttpClient将自动添加接受压缩的头部,并在响应中对压缩进行解码,默认true</summary>
    //[Description("启用Http压缩。内部新建的HttpClient将自动添加接受压缩的头部,并在响应中对压缩进行解码,默认true")]
    //public Boolean EnableHttpCompression { get; set; } = true;

    /// <summary>自动启用GZip压缩的请求体大小。应用于HttpHelper/ApiHttpClient发起的请求,默认1024,用0表示不压缩</summary>
    [Description("自动启用GZip压缩的请求体大小。应用于HttpHelper/ApiHttpClient发起的请求,默认1024,用0表示不压缩")]
    public Int32 AutoGZip { get; set; } = 1024;
    #endregion

    #region 方法
    ///// <summary>实例化</summary>
    //public SocketSetting() { }
    #endregion
}