91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

C++網絡編程實例文件,里面包含各個章節的C++源碼。 第一章 網絡通信基礎 第二章 認識Windows編程模型 第三章 網絡基本應用在VC++中的實現 第四章 串口通信及其實例 第五章 應用層協議及編程實例 第六章 傳輸層協議及編程實例 第七章 網絡層協議和數據鏈路層 第八章 Internet通信原理以及編程實例 第九章 基于Windows API的虛擬終端實現 第十章 多線程網絡文件傳輸的設計與實現 第十一章 防火墻的設計與實現 第十二章 郵件轉發器 第十三章 telnet bbs

資源截圖

代碼片段和文件信息

?//?ICMP.cpp:?implementation?of?the?CICMP?class.
//
//////////////////////////////////////////////////////////////////////

#include?“stdafx.h“
#include?“RouteTrace.h“
#include?“ICMP.h“
#include?“ws2tcpip.h“

#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////

CICMP::CICMP()
{
winsock?=?0;
m_pIp?=?NULL;
m_pIcmp?=?NULL;

m_pIp?=?(IP_HEAD?*)new?BYTE[MAX_PACKET];
m_pIcmp?=?(ICMP_HEAD?*)new?BYTE[MAX_PACKET];

}

CICMP::~CICMP()
{
delete?[]?m_pIp;
delete?[]?m_pIcmp;
}


BOOL?CICMP::Initialize()
{
WSADATA?wsadata;
if(?WSAStartup(MAKEWORD(2?1)&wsadata)?)???
{
AfxMessageBox(“WSAStartup初始化失敗!“);
return?FALSE;
}

winsock=?WSASocket?(AF_INET?? //建立socket

???SOCK_RAW
???IPPROTO_ICMP
???NULL?00);
if(!winsock) {
AfxMessageBox(?“Socket創建失敗!“);
return?FALSE;
}

int?timeout?=5000;
setsockopt(winsockSOL_SOCKETSO_RCVTIMEO(char?*)&timeout???// 設置接收超時
sizeof(timeout));
timeout?=?5000;
setsockopt(winsockSOL_SOCKETSO_SNDTIMEO(char?*)&timeout????//設置發送超時
sizeof(timeout));

return?TRUE;
}

void?CICMP::Uninitialize()????????????????//釋放Socket
{
if(winsock)
closesocket(winsock);
WSACleanup();
}

USHORT?CICMP::CheckSum(USHORT?*buffer?int?size)??//計算校驗和
{
??unsigned?long?cksum?=?0;
??while(size?>?1)?{
cksum+=*buffer++;
size?-=sizeof(USHORT);
??}
??
??if(size?)?{
cksum?+=?*(UCHAR*)buffer;
??}

??cksum?=?(cksum?>>?16)?+?(cksum?&?0xffff);
??cksum?+=?(cksum?>>16);

??return?(USHORT)(~cksum);

}

BOOL?CICMP::SendICMPPack(char?*pAddr)
{
sockaddr_in?sockAddr;
memset((void?*)&sockAddr0sizeof(sockAddr));
sockAddr.sin_family?=?AF_INET;
sockAddr.sin_port?=?0;
sockAddr.sin_addr.S_un.S_addr=inet_addr(pAddr);

return?SendICMPPack(&sockAddr);
}
//--------------------發送---------------------------
BOOL?CICMP::SendICMPPack(sockaddr_in?*pAddr)
{
//填充ICMP數據各項
int??state;
char?*p_data;
m_pIcmp->type?=?ICMP_ECHO;
m_pIcmp->code?=?0;
m_pIcmp->ID?=?(USHORT)GetCurrentProcessId();
m_pIcmp->number?=?0;
m_pIcmp->time?=?GetTickCount();
m_pIcmp->cksum?=?0;

//填充數據
p_data?=?((char?*)m_pIcmp?+?sizeof(ICMP_HEAD));
memset((char?*)p_data‘0‘DEF_PACKET);

//檢查和
m_pIcmp->cksum?=?CheckSum((USHORT?*)m_pIcmp
DEF_PACKET+sizeof(ICMP_HEAD));

//發送數據
state?=?sendto(winsock(char?*)m_pIcmp
DEF_PACKET+sizeof(ICMP_HEAD)
NULL(struct?sockaddr?*)pAddrsizeof(sockaddr));

if(state?==?SOCKET_ERROR)?{
if(GetLastError()==WSAETIMEDOUT)
m_strInfo?=?“連接超時!(發送)“;
else
m_strInfo=“出現未知發送錯誤!“;
return?FALSE;
}

if(state? m_strInfo?=?“發送數據錯誤!“;
return?FALSE;
}

memcpy((void?*)&m_sockAddr(void?*)pAddr
sizeof(sockaddr_in));

return?TRUE;
}

//

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-06-01?18:19??第七章?網絡層協議和數據鏈路層\
?????目錄???????????0??2013-06-01?18:19??第七章?網絡層協議和數據鏈路層\源代碼\
?????目錄???????????0??2013-06-01?18:19??第七章?網絡層協議和數據鏈路層\源代碼\Debug\
?????文件???????18047??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\ICMP.obj
?????文件??????114755??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\RouteTrace.exe
?????文件??????244564??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\RouteTrace.ilk
?????文件???????14741??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\RouteTrace.obj
?????文件?????5630352??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\RouteTrace.pch
?????文件??????304128??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\RouteTrace.pdb
?????文件????????2888??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\RouteTrace.res
?????文件???????39180??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\RouteTraceDlg.obj
?????文件??????110801??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\StdAfx.obj
?????文件??????214016??2008-07-27?19:24??第七章?網絡層協議和數據鏈路層\源代碼\Debug\vc60.idb
?????文件??????372736??2008-05-07?15:12??第七章?網絡層協議和數據鏈路層\源代碼\Debug\vc60.pdb
?????文件????????4969??2002-05-09?14:25??第七章?網絡層協議和數據鏈路層\源代碼\ICMP.cpp
?????文件????????1837??2002-05-08?16:32??第七章?網絡層協議和數據鏈路層\源代碼\ICMP.h
?????目錄???????????0??2013-06-01?18:19??第七章?網絡層協議和數據鏈路層\源代碼\RES\
?????文件?????????963??2002-05-04?13:02??第七章?網絡層協議和數據鏈路層\源代碼\RESOURCE.H
?????文件????????1078??2002-05-04?11:34??第七章?網絡層協議和數據鏈路層\源代碼\RES\RouteTrace.ico
?????文件?????????402??2002-05-04?11:34??第七章?網絡層協議和數據鏈路層\源代碼\RES\RouteTrace.rc2
?????文件????????1392??2002-05-13?18:07??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.clw
?????文件????????2119??2002-05-04?11:37??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.cpp
?????文件????????4387??2002-05-08?16:47??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.dsp
?????文件?????????543??2002-05-04?11:34??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.dsw
?????文件????????1251??2002-05-04?11:34??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.h
?????文件???????74752??2008-07-27?19:25??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.ncb
?????文件???????48640??2008-07-27?19:25??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.opt
?????文件?????????254??2008-07-27?19:24??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.plg
?????文件????????6015??2002-05-13?08:38??第七章?網絡層協議和數據鏈路層\源代碼\RouteTrace.rc
?????文件????????6564??2002-05-13?08:43??第七章?網絡層協議和數據鏈路層\源代碼\RouteTraceDlg.cpp
?????文件????????1424??2002-05-08?17:10??第七章?網絡層協議和數據鏈路層\源代碼\RouteTraceDlg.h
............此處省略2個文件信息

評論

共有 條評論