【问题标题】:Checking internet connection in delphi在delphi中检查互联网连接
【发布时间】:2013-04-15 17:44:37
【问题描述】:

如何,我已经制作了一个在 ftp 服务器上上传文件的程序,问题是每当我无法访问互联网时,它就会出现一个错误,它会停止运行该程序并说我不是连接到互联网。

如何让程序在显示消息框中显示该消息,以便它不会停止运行程序?

例如:

If internetconnection then
begin

end else showmessage ('You are not connected to the internet')

【问题讨论】:

  • 尝试连接到该 FTP 服务器。通过这样做,您还将验证 FTP 服务器是否处于活动状态。
  • 你用什么组件来做你的 ftp?您使用的组件(Indy、ICS 或其他)会影响如何回答这个问题。 “在 ftp 上上传文件”没有任何意义。
  • @RRUZ: InternetCheckConnection() 不可靠。

标签: delphi indy internet-connection


【解决方案1】:

请尝试此链接中的代码

Ping

您也可以尝试使用免费的Internet Component Suite 组件来实现与您的 ftp 服务器的测试连接。

编辑:

由于发现作者使用 IdFTP (Indy) 组件在 ftp 服务器上上传文件,而我的第一个答案并不好,我会鼓起勇气写,因为我认为检查与 ftp 服务器的连接的正确代码:

with IdFTP1 do begin
  Host := ..;
  Port := ..;
  Username := ..;
  Password := ..;
  if Connected then Disconnect;
  try
    Connect;
    ShowMessage('FTP IS Connected')
  except
    ShowMessage('FTP IS NOT Connected');
  end;
end;

【讨论】:

  • 虽然这可能会回答问题,但不会解决问题。考虑到 OP 应用程序的用户可能能够连接到 Internet,但会拒绝访问任何 FTP 连接。我仍在尝试连接到目标 FTP 服务器。并且请不要发布仅链接的答案。 [这里没有投票]
  • 问题中的代码表明作者一般想检查互联网连接。至于我的帖子,如果作者希望详细了解问题,他可以转到链接并查看更详细的示例。对不起,我应该写评论而不是回答。
  • 谢谢大家。 Tlama 告诉我的有效:如果 idftp1.conntected=true 则.....else showmessage('无法访问互联网');
  • 两个指向异地位置的链接在这里不是答案。如果这些链接脱机或将来移动,整个答案将变得毫无意义。您的答案应该包含足够的信息来回答问题here。使用站外链接作为附加参考材料,但不作为大部分内容。 (例外情况是指向 MS 等主要网站的链接,这些链接肯定会在那里停留很长时间。)
  • 组件未能连接到 FTP 站点并不一定意味着没有互联网连接。例如,假设您的 DNS 服务器暂时中断,这反过来又导致组件无法连接。或者,假设 FTP 站点暂时关闭。或者,FTP 服务器正在阻止您的连接。这些都不意味着您没有互联网连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 2017-03-16
  • 2014-02-08
相关资源
最近更新 更多