哪位大虾知道QQ等软件的实时检测是否联网的功能是如何实现的???(50分)

  • 主题发起人 主题发起人 chchao1980
  • 开始时间 开始时间
C

chchao1980

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位大虾知道QQ等软件的实时检测是否联网的功能是如何实现的???
 
通过实际的发包与收包检测(QQ一直在后面收广告,呵呵)
 
用UDP协议给服务器发数据包,能接收到返回信息就联网
 
小弟对UDP不太熟,请问各位大虾具体怎么实现呀,能给段代码吗,怎样发数据包怎样接受返回信息如何判断是否联网
 
如果你要真实的体现Internet在线,不要用UDP了,用TCP,代码如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient;

type
TForm1 = class(TForm)
IdTCPClient1: TIdTCPClient;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
idtcpclient1.Host := '202.108.249.206'; //CCTV
idtcpclient1.Port := 80;
try
idtcpclient1.Connect;
idtcpclient1.Disconnect;
showmessage('在线');
except
showmessage('请检查网络');
end;
end;

end.
 
东兰梦舞, 如果网线断开的话,程序就没有响应了,这怎么解决呀
 
idtcpclient1.Connect(1000); //等一秒
 
多人接受答案了。
 
后退
顶部