我在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捕获的是四个字母的文本????
我需要的是接收定义格式的数据包而不是四个?登录。
提前感谢任何建议。
答案 0 :(得分:1)
MSDN:
“MMM”自定义格式说明符表示缩写名称 这个月。检索月份的本地化缩写名称 来自的DateTimeFormatInfo.AbbreviatedMonthNames属性 当前或特定的文化。
尝试传入CultureInfo
return DATE_TIME.ToString(Program.DateFormat,CultureInfo.InvariantCulture) + " " + "10.0.72.45 " + ....
如果失败,则必须是libpcap由于某种原因无法访问DateTimeFormatInfo.AbbreviatedMonthNames。