《网络编程与协议分析》课程设计报告

发布时间 : 星期三 文章《网络编程与协议分析》课程设计报告更新完毕开始阅读

(6)系统构架

四、部分代码

1)初始化套接字

BOOL CTestDlg::SockInit() { WSADATA wsa; if(WSAStartup(MAKEWORD(2,2),&wsa)!=0) { AfxMessageBox(\ } m_sock=socket(AF_INET,SOCK_RAW,0); if(m_sock==INVALID_SOCKET) { AfxMessageBox(\ } SOCKADDR_IN addr; addr.sin_family=AF_INET; addr.sin_port=htons(5000); struct hostent FAR * pHostent; char FAR name[25]; gethostname(name, 25); pHostent = gethostbyname(name); memcpy(&addr.sin_addr.S_un.S_addr,pHostent->h_addr_list[0],pHostent->h_len); if(bind(m_sock,(SOCKADDR *)&addr,sizeof(addr))!=0) { AfxMessageBox(\ } DWORD dwBytesRet; unsigned int optval = 1; int pCount=0;

if(INVALID_SOCKET==(WSAIoctl(m_sock,SIO_RCVALL,&optval,sizeof(optval),

NULL, 0, &dwBytesRet, NULL, NULL)))

{ AfxMessageBox(\ Fail!\ return false; }

}

return true;

2)初始化表格

BOOL CTestDlg::ListInit() { DWORD dwStyle = GetWindowLong(m_List.m_hWnd, GWL_STYLE); SetWindowLong(m_List.m_hWnd,GWL_STYLE,dwStyle|LVS_REPO); DWORD dwStyles = m_List.GetExStyle(); dwStyles &= ~LVS_EX_CHECKBOXES;

m_List.SetExtendedStyle(dwStyles|LVS_EX_FULLROWSELECT|LVXGRIDLINES); m_List.InsertColumn(1,\版本\ m_List.InsertColumn(2,\头部长度\ m_List.InsertColumn(3,\服务类型\ m_List.InsertColumn(4,\总长度\ m_List.InsertColumn(5,\标识符\ m_List.InsertColumn(6,\标志位\ m_List.InsertColumn(7,\片偏移\ m_List.InsertColumn(8,\生存周期\ m_List.InsertColumn(9,\协议\ m_List.InsertColumn(10,\首部校验和\ m_List.InsertColumn(11,\源地址\ m_List.InsertColumn(12,\目的IP地址\

}

return true;

3)ip,tcp,udp,icmp头部定义

struct iphead { unsigned char ip_EdiAndLen; unsigned char ip_Serve; unsigned short int ip_Len; unsigned short int ip_Sign; unsigned short int ip_MarkAndMove; unsigned char ip_Ttl; unsigned char ip_Protocol;

//版本&首部长度

//服务类型 //总长度 //标识 //标识&片偏移 //生存时间 //上层协议

联系合同范文客服:xxxxx#qq.com(#替换为@)