3
require 'watir-webdriver'    
begin
  url='http://localhost/test/test.php'
  ie =Watir::Browser.new:chrome
  ie.goto url
rescue Timeout::Error
  puts "time out"
  ie.close
  retry
end

这是我的 php 文件:http://localhost/test/test.php

<?php 
set_time_limit(90);
sleep(60);
echo "hello"
?>

输出->超时,然后出错:

Errno::ECONNREFUSED(无法建立连接,因为目标机器主动拒绝了它。- connect(2))。

基本上它应该在超时后关闭ie然后再次打开ie等等

4

2 回答 2

2

这可能不是服务员的问题。从这个答案(https://stackoverflow.com/a/2972662/131051

如果这种情况总是发生,它的字面意思是机器存在,但它没有在指定端口上侦听的服务,或者有防火墙阻止你。

于 2013-04-17T13:48:42.467 回答
2

当您尝试连接到任何盒子时,可以通过多种方式处理连接。如果您有防火墙阻止连接,它可以 DROP(如 netfilter 的 DROP 目标)或 REJECT 传入连接。

区别:

  • DROP 意味着传入的数据包被丢弃(如在地板上)。目标没有回复。源没有得到关于数据包发生了什么的任何信息。它只能做出假设,但不能肯定地说数据包没有在途中被网络组件吞下。
  • REJECT 意味着对于传入的数据包(如打开连接的 SYN 请求)将生成一个回复,说明在目标服务器的端口上没有应用程序正在侦听。这意味着数据包已到达目的地并已成功处理(解释),但没有应用程序可以控制该数据包。

您收到连接被拒绝,这意味着目标回复了,但表示无法或不会建立连接(主动拒绝)。预期的超时仅在目标机器没有应答并丢弃数据包时发生。

您可以在此处查看连接是如何建立、建立或拒绝的。

于 2013-04-17T13:47:24.650 回答