今天,通过调查表的反馈明确了改进方向。作为组长,我负责整个项目的进度管理和质量控制,10天里的主要方向是:

  1、不断进行新版本的需求分析从而明确组员行动方向

  2、指导测试人员完成高质量的测试

  3、撰写主要的文档

今天完成学习一些网络编程处理ip包方面的知识,对我们的平台拓展可能有一定的帮助。

linux下ip头选项ipoption的实现(难以实现,setsockopt()函数不支持BSD标准下的IP_OPTION这一关键字)

在windows下

定义ipoptionhdr结构体

typedef struct _ipoptionhdr
{
unsigned char code;
unsigned char len;
unsigned char ptr;
unsigned long addr[9];
}IpOptionHeader;

然后在发包前对socket进行设置

if(RecordFlag)
{
//ip选项每个字段用0初始化
ZeroMemory(&IpOption,sizeof(IpOption));
//为每个ICMP包设置路由选项
IpOption.code=IP_RECORD_ROUTE;
IpOption.ptr=4;
IpOption.len=39;

ret=setsockopt(m_socket,IPPROTO_IP,IP_OPTIONS,(char*)&IpOption,sizeof(IpOption));
if(ret==SOCKET_ERROR)
{
printf("setsockopt(IP_OPTIONS) failed:%d\n",WSAGetLastError());

}

就可以完成在ip头的扩展选项中完成包的路由的记录的功能。