社区
网络及通讯开发
帖子详情
如何用CB实现ping
zhngxVPP
2006-08-24 11:17:48
各位大虾,我现在遇到一个难题,当学习CB,老师就让我写个Ping程序!
要求:
输入: 目标主机地址;ping次数;ping包的大小;ping包的类型;ping包发送时间间隔;
输出:成功Ping次数;失败ping次数;最大时间延迟;最小时间延迟;平均延迟;
小弟我一点思路都没有;请各位大虾指点迷津!!!!用什么空间能实现,还是直接写地层的代码啊!!请说的详细点!
...全文
687
11
打赏
收藏
如何用CB实现ping
各位大虾,我现在遇到一个难题,当学习CB,老师就让我写个Ping程序! 要求: 输入: 目标主机地址;ping次数;ping包的大小;ping包的类型;ping包发送时间间隔; 输出:成功Ping次数;失败ping次数;最大时间延迟;最小时间延迟;平均延迟; 小弟我一点思路都没有;请各位大虾指点迷津!!!!用什么空间能实现,还是直接写地层的代码啊!!请说的详细点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sbkopoky
2007-02-17
打赏
举报
回复
有一个香港和悦网络电话的源文件 ,有兴趣妨进入我的BLOG看看
laowang2
2006-12-30
打赏
举报
回复
mark
truelove7283159
2006-12-07
打赏
举报
回复
up
wood542344
2006-12-07
打赏
举报
回复
void __fastcall TTfrmPing::btnPingClick(TObject *Sender)
{
int i;
ICMP->OnReply = ICMPReply;
ICMP->ReceiveTimeout = 1000;
btnPing->Enabled = False;
try
{
ICMP->Host = edtHost->Text;
for(i = 1; i <= 4; i++)
{
ICMP->Ping();
Application->ProcessMessages();
// Sleep(1000);
}
}
__finally
{
btnPing->Enabled = True;
}
}
void __fastcall TTfrmPing::ICMPReply(TComponent *ASender,
const TReplyStatus &AReplyStatus)
{
AnsiString sTime, result[5];
// TODO: Check for error on ping reply (ReplyStatus->MsgType?)
if(AReplyStatus.MsRoundTripTime == 0)
{
sTime = "<1";
}
else
{
sTime = "=";
}
result[0] = IntToStr(AReplyStatus.BytesReceived);
result[1] = AReplyStatus.FromIpAddress;
result[2] = IntToStr((int)AReplyStatus.SequenceId);
result[3] = IntToStr((int)AReplyStatus.TimeToLive);
result[4] = sTime;
result[5] = IntToStr(AReplyStatus.MsRoundTripTime);
lstReplies->Items->Add(result[0] + " bytes from " + result[1] +
": icmp_seq=" + result[2] + " ttl=" + result[3] +
" time" + result[4] + result[5] + " ms");
}
在BCB安装盘里有。
daydayup234
2006-12-07
打赏
举报
回复
typedef void* (__import IcmpCreateFile)(void);
typedef int (__import IcmpCloseHandle)(void*);
typedef unsigned long (__import IcmpSendEcho)(void *,unsigned long,void far*,unsigned short,ip_option_information*,void far*,unsigned long,unsigned long);
IcmpCreateFile *Func1;
IcmpSendEcho *Func2;
IcmpCloseHandle *Func3;
daydayup234
2006-12-07
打赏
举报
回复
void Tmain_::ping(String ipAddr)
{
HINSTANCE hIcmpdll;
hIcmpdll=LoadLibrary("icmp.dll");if(hIcmpdll==NULL){FreeLibrary(hIcmpdll);return;}
WSAData wsadata;// #include "winsock2.h"
WSAStartup(2,&wsadata);
HANDLE hIcmp;
(FARPROC &)Func1=GetProcAddress(hIcmpdll,"IcmpCreateFile");
hIcmp=Func1();
unsigned long Res;
int size=sizeof(icmp_echo_reply)+8; ////minimum 8 byte icmp packet (just header)
unsigned char * buff=new unsigned char[size];
(FARPROC &)Func2=GetProcAddress(hIcmpdll,"IcmpSendEcho");
icmp_echo_reply* iep=(icmp_echo_reply*)&buff;
iep->RoundTripTime = 0xffffffff;
Res=Func2(hIcmp,inet_addr(ipAddr.c_str()),0,0,0,buff,size,ComboBox1->Text.ToIntDef(10));
unsigned long LRoundTripTime;
LRoundTripTime=iep->RoundTripTime;
delete [] buff;buff=0;
if(Res>0
{
TListItem* listitem;
listitem=ListView1->Items->Add();
listitem->Caption=ipAddr;
listitem->SubItems->Add(LRoundTripTime);
}
(FARPROC &)Func3=GetProcAddress(hIcmpdll,"IcmpCloseHandle");
Func3(hIcmp);
WSACleanup();
FreeLibrary(hIcmpdll);
}
daydayup234
2006-12-07
打赏
举报
回复
关键函数IcmpSendEcho:WINSOCK API函数,通过一个IP地址Ping一个机器,在ICMP.dll中
ICMP全称Internet Control Message Protocol(网际控制信息协议)。ICMP∈TCP/IP协议包
要求 主机没有被配置为过滤ICMP形式
Y___Y
2006-12-06
打赏
举报
回复
可运用命令行ping后输到程序中,最简单
Rojo.Cai
2006-12-06
打赏
举报
回复
ben3(炮弹) 说得对,,,BCB6下面就有,,,BCB5 没有得
Andrionda
2006-09-29
打赏
举报
回复
《C++Builder高级编程》黄皮的那本书上有ping的例子
ben3
2006-08-25
打赏
举报
回复
参考indy 控件的例子Program Files\Borland\CBuilder6\Examples\Indy\PingGUI
VC++
实现
CMD命令执行与获得返回信息
VC++6.0
实现
CMD命令执行与获得返回信息,用CreateProcess执行CMD命令,用命名管道来获得返回的数据.基本上可以执行所有CMD命令.
路由器设置小助手 (Router Setup) V1.2 绿色版-方便实用
应用平台: Win7 / Vista / Win2003 / WinXP 软件MD5: B2CC0B01DBD5EB9BDE74
CB
48BECE0F3A 软件简介 在日常电脑维护工作中,经常需要对路由器进行设置,虽然不是什么难事,但反复查看IP地址及登录查看,非常繁琐。为了简化操作,专门写了这么个小程序,一可以显示本机的IP,初步判断IP是否正确?二可以
Ping
路由器试一下网线连接情况,三可以快速打开路由器登录界面,不用输入IP了,四是设置完毕后可以
Ping
下外网测试是否已经连接到互联网。所有这些操作,只用鼠标点点就可以
实现
了,不用再用键盘输入来输入去的了,节省时间,同时,也利于远程指导不会的人调试路由器。
C++通过代码
实现
ping
功能,检测远端设备是否在线(附完整源码)
本文讲述如何通过代码
实现
ping
功能,去检测远端设备是否在线(附完整源码)。
MFC
实现
ping
功能。整理来的
// 参数: // szTarget目标地址(可以是域名、IP地址) // dwTime返回时间;如果是超时,等于INFINITE BOOL
Ping
(LPCTSTR szTarget, DWORD &dwTime) { BOOL bSuccess = FALSE; dwTime = INFINITE; if(szTarget == NULL) {
C++调用IcmpSendEcho函数
实现
对远端地址的
ping
检测(附源码)
调用IcmpSendEcho函数
实现
对远端地址的
ping
检测
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章