一个功能实现的咨询(只要给个思路就可以了)

wangjiand 2002-04-03 01:06:31
功能自动修复网络连接(类似于Winxp中的修复功能,但是自动的)
有以下的问题要实现
1, 在VC实现ping的命令,根据ping的返回来决定网络是否畅通
但我不知道在vc中怎样ping
2, 怎样用vc禁用本地连接,当然也可以启用(就是win2000,winxp 中
网络属性中的禁用)。
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tagger 2002-04-03
  • 打赏
  • 举报
回复
http://www.codeguru.com/network/ping.shtml
星辰游侠 2002-04-03
  • 打赏
  • 举报
回复
很难么?
星辰游侠 2002-04-03
  • 打赏
  • 举报
回复
????
wangjiand 2002-04-03
  • 打赏
  • 举报
回复
老兄不行,我是过了,里面的代码好像是别的代码重的一部分,编译根本不可能通过!
devil97518 2002-04-03
  • 打赏
  • 举报
回复
如下代码就可以实现ping.请尝试?

int CPing::TakePing(CString strHostName,int iCount,CString *pstrList,int &iStrcout)
{
CThreadInfo* pThreadInfo=NULL ;//= (CThreadInfo*)pParam;
iStrcout=-1;
SOCKET rawSocket;
struct sockaddr_in saDest;
struct sockaddr_in saSrc;
LPHOSTENT lpHost;
CString str;
int nRet;
DWORD dwTimeSent,dwElapsed;
u_char cTTL;
long m_laddr;

rawSocket = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
while (TRUE)
{
str.Format("读取计算机:%s地址",strHostName);
iStrcout++;
pstrList [iStrcout]=str;
m_laddr = inet_addr(strHostName);
if (m_laddr == INADDR_NONE)
{
lpHost = gethostbyname(strHostName);
if (lpHost == NULL)
{
str.Format("计算机名字无效: %s", strHostName);
iStrcout++;
pstrList [iStrcout]=str;
return -1;
}
saDest.sin_addr.s_addr = *((u_long FAR *) (lpHost->h_addr));
}
else
{
saDest.sin_addr.s_addr =m_laddr;
}
saDest.sin_family = AF_INET;
saDest.sin_port = 0;
str.Format("Pinging %s [%s] with %d bytes of data:",
strHostName,
inet_ntoa(saDest.sin_addr),
REQ_DATASIZE);

for (int nLoop = 0; nLoop < iCount; nLoop++)//ping 的次数
{
SendEchoRequest(rawSocket, &saDest);
nRet = WaitForEchoReply(rawSocket);
if (!nRet)
{
str.Format("超时");
return -1;
}
else
{
// Receive reply
dwTimeSent = RecvEchoReply(rawSocket, &saSrc, &cTTL);
// Calculate elapsed time
dwElapsed = GetTickCount() - dwTimeSent;
str.Format("Reply[%d] from: %s: bytes=%d time=%ldms TTL=%d",
nLoop+1,
inet_ntoa(saSrc.sin_addr),
REQ_DATASIZE,
dwElapsed,
cTTL);
iStrcout++;
pstrList [iStrcout]=str;
}
}
break;
}
nRet = closesocket(rawSocket);
return 1;
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧