http://www.csdn.net/expert/topic/169/169977.shtm
也许这个程序对你有用
也许这个程序对你有用
解决方案 »
- 求能导出中文的fastreport
- LOG文件的读取。
- C语言中的(BYTE* lpChar)在PASCALL中如何用?因为要用C写的DLL中的一个函数,其中的一个参数就是这样
- 请问int & 在delphi里如何定义?
- 怎么让ModleMaker内的代码编辑器具备代码提示功能?
- 世界上最简单的问题
- 倒表问题
- ==Delphi6和Oracle8.1.7的Date字段的问题?===
- 用delphi怎样判断数据库中某个字段的值已存在!
- 请问如何知道其他已经打开的FORM,并将其关闭?
- 为何给分只能是0--66分?
- 请问什么地方有象163.net首页上的移动的图片动画效果的程序下载(Delphi、VC均可),或者怎样实现的?
这样怎么能行?繁忙就是繁忙,空闲就是空闲,怎么可以粗略呢?
若98下,我有代码,留个mail
源码发出了!
那东东有多大呀?怎么收了好久也没收下来?源码不可能有这么大?
你发的那个程序已收到但我看不懂,我现在将近它贴出来,能不能帮忙解释一下?
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,winsock;
type
PIPOptionInformation = ^TIPOptionInformation;
TIPOptionInformation = packed record
TTL: Byte;
TOS: Byte;
Flags: Byte;
OptionsSize: Byte;
OptionsData: PChar;
end;
PIcmpEchoReply = ^TIcmpEchoReply;
TIcmpEchoReply = packed record
Address: DWORD;
Status: DWORD;
RTT: DWORD;
DataSize: Word;
Reserved: Word;
Data: Pointer;
Options: TIPOptionInformation ;
end;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function IcmpCreateFile:THandle;stdcall;
function IcmpCloseHandle(IcmpHandle:THandle):Bool;stdcall;
function IcmpSendEcho(IcmpHandle:THandle;DestinationAddress:DWORD;RequestData:Pointer;RequestSize:Word;RequestOptions:PIPOptionInformation;ReplyBuffer: Pointer;ReplySize: DWord;Timeout: DWord): DWord; stdcall;
var
Form1: TForm1;implementation{$R *.DFM}
function IcmpCreateFile;external 'icmp.dll';
function IcmpCloseHandle;external 'icmp.dll';
function IcmpSendEcho;external 'icmp.dll';
procedure TForm1.Button1Click(Sender: TObject);
var Icmp:THandle;
var IPAddress:Dword;
var pReqData,pRevData:PChar;
var pIPE:PIcmpEchoReply;// ICMP Echo reply buffer
var IPOpt:TIPOptionInformation;// IP Options for packet to send
var Size: DWORD;
var MyString:string;
var TimeOut:DWORD;
var BufferSize:DWORD;
begin
Icmp:=IcmpCreateFile;
IPAddress:=inet_addr(PChar(Edit1.Text));
Size:=40;
BufferSize:=SizeOf(TICMPEchoReply)+Size;
GetMem(pRevData,Size);
GetMem(pIPE,BufferSize);
FillChar(pIPE^,SizeOf(pIPE^),0);
pIPE^.Data := pRevData;
MyString:='Hello,World';
pReqData := PChar(MyString);
FillChar(IPOpt,Sizeof(IPOpt),0);
IPOpt.TTL:=64;
TimeOut:=4000;
IcmpSendEcho(Icmp,IPAddress,pReqData,Length(MyString),@IPOpt,pIPE,BufferSize,TimeOut);
if pReqData^ = pIPE^.Options.OptionsData^ then
begin
ShowMessage(Edit1.Text+' '+IntToStr(pIPE^.DataSize) +' '+IntToStr(pIPE^.RTT));
end;
FreeMem(pRevData);
FreeMem(pIPE);end;end.
这个是98下的一个系统提供的icmp.dll,这个程序我也只能看懂各个赋值有什么用。
icmpIcmpCreateFile这个应该还有很多用法,其他用法我不会!
上面用法是,你的机器发出'Hello,World'到那边的机器,然后那边的机器收到后则立刻返回同个字串,所以通过来回时间。来判断连通的质量