捕获错误" MMM"使用libpcap的DateTime格式

时间:2016-06-26 08:13:13

标签: c# linux date-format libpcap packet-capture

我在C#中编写了一个数据包模拟器,它生成一些UDP数据包并将它们发送到给定的IP地址。模拟器成功生成并将数据包发送到我的UBUNTU虚拟机,但目标存在问题。在C#程序中,数据格式定义为:

namespace PacketSimulator
{
    static class Program
    {
        public static string DateFormat = "MMM dd HH:mm:ss";
        .
        .
    }
}

和数据包由:

发送
namespace PacketSimulator
{
    class ConnectionInfo
    {
        public DateTime DATE_TIME;
        public override string ToString()
        {
            return DATE_TIME.ToString(Program.DateFormat) + " " + "10.0.72.45 " + ....

        }
     }
}

但是在Linux方面,我可以捕获的内容与我发送的内容有点不同:

???? 26 18:17:10 10.0.72.45

月份格式定义为" MMM" (C#程序中的三个字母的月份名称)但是Lipcap捕获的是四个字母的文本????

我需要的是接收定义格式的数据包而不是四个?登录。

提前感谢任何建议。

1 个答案:

答案 0 :(得分:1)

MSDN:

  

“MMM”自定义格式说明符表示缩写名称   这个月。检索月份的本地化缩写名称   来自的DateTimeFormatInfo.AbbreviatedMonthNames属性   当前或特定的文化。

尝试传入CultureInfo

return DATE_TIME.ToString(Program.DateFormat,CultureInfo.InvariantCulture) + " " + "10.0.72.45 " + ....

如果失败,则必须是libpcap由于某种原因无法访问DateTimeFormatInfo.AbbreviatedMonthNames。