用raw socket截获数据包后从ip包中得到数据段
这个数据段是什么形式的? 是不是标准的以null字符结尾的char字符? 如果不是以null结尾的 那就不能用strlen ,strcpy.....字符串操作函数 那该怎么处理呢?
这个数据段是什么形式的? 是不是标准的以null字符结尾的char字符? 如果不是以null结尾的 那就不能用strlen ,strcpy.....字符串操作函数 那该怎么处理呢?
{
union
{
BYTE Version;
BYTE HdrLen;
};
BYTE ServiceType;
WORD TotalLen;
WORD ID;
union
{
WORD Flags;
WORD FragOff;
};
BYTE TimeToLive;
BYTE Protocol;
WORD HdrChksum;
DWORD SrcAddr;
DWORD DstAddr;
} IP;
typedef struct _TCP
{
WORD SrcPort;
WORD DstPort;
DWORD SeqNum;
DWORD AckNum;
BYTE DataOff;
BYTE Flags;
WORD Window;
WORD Chksum;
WORD UrgPtr;
} TCP;IP iphead = *(IP*)RecvBuf;
TCP tcphead = *(TCP*)(RecvBuf + (iphead.HdrLen ));
我说的不是ip tcp头的结构......
memcpy把数据拷贝出来不就行了么?又或者直接处理又有什么问题?不一定要NULL结束啊
void *_memccpy( void *dest, const void *src, int c, unsigned int count );其中 unsigned int count:数据长度如何确定???