大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 用C++ Builder实现网络连接检测程序

用C++ Builder实现网络连接检测程序

时间: 2021-07-31 作者:daque

在windows体例中,咱们常常用ping.exe来尝试搜集的连通性。   ping的实行进程很大略,该吩咐将激励ip层发送一个大略的ip包,普遍是32字节。而手段方收到这个包后,将源地方和手段地方变幻一下,从新发送这个包即可,固然还要加少许超机会制。   本来,咱们也可用c++ builder netmaster中的nmecho控件来实行搜集贯穿检验和测定功效。   开始设置以次控件:   三个edit控件:一个用来接受长途长机的ip地方或域名,一个用来接受用户树立的超机会制的功夫,一个用来树立端标语。   两个richedit控件:一个用来给长途长机发送消息,一个用来接受来自长途长机的消息。   两个checkbox控件:用来用户能否本人设定端标语。   一个button控件:用来实行尝试。   一个statusbar控件:用来表露运用步调的状况。   步调实行代码如次:   void __fastcall tform1::button1click(tobject   ender)   { //树立nmecho控件的规范tcp/ip属性    nmecho1-〉host=edit1-〉text ;    nmecho1-〉timeout=strtoint(edit2-〉text) ;    if(checkbox1-〉checked)      nmecho1-〉port=strtoint(edit3-〉text);    else      nmecho1-〉port=7;   //tcp/ip中echo的默许端标语   nmecho1-〉reportlevel=status_basic;    nmecho1-〉connect(); //创造贯穿    richedit2-〉clear ();    for(int i=0;i   //richedit1用来给长途长机发送消息   richedit2-〉text=richedit2-〉text +nmecho1-〉echo(richedit1-〉lines-〉   strings[i]);    nmecho1-〉disconnect ();   }   提防:在挪用nmecho控件的connect()本领时,该当保证在接受数据之前贯穿仍旧创造。当挪用connect()本领后,即使用户输出的是域地方而不是ip地方,且域名效劳器胜利地领会了这个域名,将触发控件的onhostresoved事变,在此事变的处置中,咱们将领会胜利的动静在状况栏中表露给用户。简直实行代码如次:   void __fastcall tform1::nmecho1hostresolved(tcomponent   ender)   {    statusbar1-〉panels-〉items[0]-〉text="host resolved!";       }   即使用户输出的长途长机不精确,将触发控件的oninvalidhost事变,在此事变的处置中,弹出对话框诉求用户从新输出长途长机的ip地方或域名地方,而后试图与效劳珍视建贯穿。简直代码如次:   void __fastcall tform1::nmecho1invalidhost(bool &&handled)   {    ansistring s;    if(inputquery("invailid host!","specify a new host:",s))    {      nmecho1-〉host=s;      handled=true;    }       }   创造贯穿后,将触发控件的onconnect事变,在此事变的处置中,咱们将贯穿胜利的动静在状况栏中表露给用户。简直实行代码如次:   void __fastcall tform1::nmecho1connect(tobject   ender)   {    statusbar1-〉panels-〉items[0]-〉text="echo has connected host!";     }   即使在挪用connect()本领后,在超时功夫仍旧没有与效劳器贯穿,将触发控件的onconnectfailed事变,在此事变的处置中,咱们将贯穿波折的动静表露给用户。简直实行代码如次:   void __fastcall tform1::nmecho1connectionfailed(tobject   ender)   {   showmessage("connection failed!");       }   除去nmecho控件不妨实行之上功效外,netmaster的nmdaytime、nmtime这两个控件也能实行。本领与nmecho控件一律,辨别是nmdaytime和nmtime这两个控件不必开始挪用connect()本领,它们与效劳器的贯穿是在运用daytimestr、timestr属性时机动举行的.

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.