社区
网络编程
帖子详情
各位高手,如何用MFC实现ping的命令啊?
sal
2005-08-07 10:39:48
我是新手,正在做一个ping的程序,就是输入要ping的ip地址,点确定,即可返回ping的结果这种程序,但是我不知道用MFC的方法生成icmp原始套接字啊,特请教各位朋友。谢谢!
...全文
1220
30
打赏
收藏
各位高手,如何用MFC实现ping的命令啊?
我是新手,正在做一个ping的程序,就是输入要ping的ip地址,点确定,即可返回ping的结果这种程序,但是我不知道用MFC的方法生成icmp原始套接字啊,特请教各位朋友。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sal
2005-10-20
打赏
举报
回复
偶有几天没来了,没想到讨论这么激烈,偶用的VC.net,没感觉MFC和raw socket有什么冲突啊。偶是新手啊,没使用命令行,而是创建了普通的一个对话框程序,输入ip地址,点击开始,然后在edit control里显示ping的结果,基本的功能已经实现了,但感觉ping的结果time值要么是0ms,要么是10的倍数,而ttl值和windows里自带的ping的结果对不上。
菲斯可儿
2005-10-19
打赏
举报
回复
但MFC不是基于命令行的,有些地方要改一改。
菲斯可儿
2005-10-19
打赏
举报
回复
哪儿有的事,MFC和raw socket没啥冲突的地方,socket2当然也可以用的。
chjshen
2005-10-19
打赏
举报
回复
好像是在vc6的mfc里是没有办法实现raw socket 的吧,我记得mcf 只支持socket 1.1 而不支持 socket 2
呀看来得用原始的方法了研究ing
i_noname
2005-09-24
打赏
举报
回复
msdn下有个例子的,你找一下ping sample
sal
2005-09-24
打赏
举报
回复
代码里的原始套接字是没有用到mfc的,是自己建的。
gnixemos
2005-09-22
打赏
举报
回复
mfc可以用row socket吗
sal
2005-09-21
打赏
举报
回复
guyue6670,我的qq号是173940511,我们可以讨论一下,呵呵
美丽海洋
2005-09-19
打赏
举报
回复
我也正做这个问题,不知道怎么实现,楼主能不能大家共享一下你的成果。
sal
2005-09-19
打赏
举报
回复
前一段时间有事没写程序。我现在还没研究到超时这一步,惭愧啊。我想问问fisher0303,
typedef struct ip_optionhdr
{
unsigned char code; // Option type
unsigned char len; // Length of option hdr
unsigned char ptr; // Offset into options
unsigned long addr[9]; // List of IP addrs
}IpOptionHeader;
这个结构是什么意思啊,是在返回数据报中紧接着ip数据报的报头以后的部分吗,如果是的话,这部分记录的数据起什么作用,尤其是addr[9]这个数组,这9个ip地址是哪儿来的啊?因为DecodeIPOption这个函数我看不懂啊。谢谢!
sal
2005-09-19
打赏
举报
回复
我正在做啊,连最基本的功能都还没实现呢,我的基本思路就是在VC中,照搬fisher0303提供的代码写进去,不过有些函数都封装在类中了,到时还不知道行不行呢。
nkwesley
2005-09-19
打赏
举报
回复
我有例子
flyjzy5
2005-09-15
打赏
举报
回复
不好意思,说错了,超时设置用-w。我的意思是,系统自带的ping最小间隔好像是1s,如何设置<1s呢?
flyjzy5
2005-09-15
打赏
举报
回复
bobob(静思--潜心研究PDF) ,你这是一个新的方案,但是怎样设置超时呢?
Tranquillo
2005-08-09
打赏
举报
回复
在MFC框架下直接用原始套接字,有什么问题
102442
2005-08-09
打赏
举报
回复
22
sal
2005-08-09
打赏
举报
回复
我现在正是在MFC的框架下使用fisher0303提供的这段代码,程序还没有写完,现在还看不出有什么不妥,呵呵。
Practise_Think
2005-08-08
打赏
举报
回复
用代码实现ping的协议
bobob
2005-08-08
打赏
举报
回复
用管道,m_strResult里面保存的是执行结果
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
MessageBox("Error On CreatePipe()");
return;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcess(NULL,"ping 127.0.0.1 -t"
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
DWORD dw = GetLastError();
MessageBox("Error on CreateProcess()");
return;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
m_strResult+= buffer;
UpdateData(false);
Sleep(200);
}
}
rylante
2005-08-08
打赏
举报
回复
ShellExecute
加载更多回复(10)
MFC
实现
网络诊断工具:
ping
源代码分析
Microsoft Foundation Classes(
MFC
)库是一个用于创建Windows应用程序的C++类库,由微软提供,是微软Visual C++开发环境的一部分。
MFC
旨在封装Win32 API的复杂性,提供更为方便、面向对象的编程接口,以简化Windows桌面应用程序的开发。通过
MFC
,开发者可以使用类和对象来处理窗口、菜单、控件等GUI元素,并
实现
消息处理、事件响应等功能。
MFC
实现
ping
功能。整理来的
// 参数: // szTarget目标地址(可以是域名、IP地址) // dwTime返回时间;如果是超时,等于INFINITE BOOL
Ping
(LPCTSTR szTarget, DWORD &dwTime) { BOOL bSuccess = FALSE; dwTime = INFINITE; if(szTarget == NULL) {
MFC
实现
ping
命令
检测主机是否在线(附完整源码)
MFC
实现
ping
命令
检测主机是否在线(附完整源码)
MFC
实现
ping
功能(附完整源码)
MFC
实现
ping
功能(附完整源码)
MFC
实现
ping
命令
检测主机是否在线(附完整源码)
MFC
实现
ping
命令
检测主机是否在线(附完整源码)
网络编程
18,356
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章