/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Time out i fsockopen
Fra : Michael Gandrup Vend~


Dato : 27-06-02 23:50

Hejsa håber meget på et klogt hovede.

Jeg forsøger at lave et "Er den der tjek" altså se om et domæne er
oppe. Ifølge manualen burde man da kunne justere hvor hurtig fsockopen
skal opgive at få kontakt ik?

Jeg har prøvet med:
$fp = fsockopen ("www.domaenesomernede.dk", 80, $errno, $errstr, 3);

Burde den ikke opgive efter 3 sek.?

Hvis jeg venter længe nok, så siger den
Connection timed out (110)

--
Med venlig hilsen
Michael Gandrup Vendelbo

 
 
Kristian Risager Lar~ (28-06-2002)
Kommentar
Fra : Kristian Risager Lar~


Dato : 28-06-02 01:03

> $fp = fsockopen ("www.domaenesomernede.dk", 80, $errno, $errstr, 3);
> Burde den ikke opgive efter 3 sek.?

Jo, det skulle jeg mene.
Der står dog ingen steder at "float timeout" er angivet i sekunder.
Prøv evt. at se på socket_set_timeout:
http://dk.php.net/manual/en/function.socket-set-timeout.php
--
Mvh, Kristian Risager Larsen - http://kezze.dk - mailto:kezze@kezze.dk
"Der er 10 slags mennesker. Dem der kan binære tal og dem der ikke kan."


Michael Gandrup Vend~ (28-06-2002)
Kommentar
Fra : Michael Gandrup Vend~


Dato : 28-06-02 09:21

On Fri, 28 Jun 2002 02:03:28 +0200, Kristian Risager Larsen wrote:

>> $fp = fsockopen ("www.domaenesomernede.dk", 80, $errno, $errstr, 3);
>> Burde den ikke opgive efter 3 sek.?
>Jo, det skulle jeg mene.

Den her kan jeg pludeselig få til at virke i dag

$fp = @fsockopen ("www.ensomikkefindes.dk", 80, $errno, $errstr, 30)
or die("ingen kontakt");

Hvis domænet ikke findes eller hvis jeg ændre port 80 til en der er
lukket på et domæne som findes. Så får jeg fint en "ingen kontakt"

>Der står dog ingen steder at "float timeout" er angivet i sekunder.

Øhh citat fra manual siden:
The optional timeout can be used to set a timeout in seconds for the
connect system call.

Men det ser ud til at socket_set_timeout skal angives som 1000 for et
sek.

>Prøv evt. at se på socket_set_timeout:
>http://dk.php.net/manual/en/function.socket-set-timeout.php

Den kan jeg vel først bruge når jeg har forbindelse? Ifølge
eksemplerne bruges den først når man skal læse.

--
Med venlig hilsen
Michael Gandrup Vendelbo

Tonni Aagesen (28-06-2002)
Kommentar
Fra : Tonni Aagesen


Dato : 28-06-02 10:08

"Michael Gandrup Vendelbo" <michael@gandrup-vendelbo.com> skrev i en
meddelelse news:j86ohuo58vmn4ue8s5ago5icgvkug2ukef@4ax.com...

> Den her kan jeg pludeselig få til at virke i dag
>
> $fp = @fsockopen ("www.ensomikkefindes.dk", 80, $errno, $errstr, 30)
> or die("ingen kontakt");

Har du prøvet med 'or die("ingen kontakt");' i din oprindelige forbindelse?
I øvrigt er 30 sekunder præcis det samme som værdien af "max_execution_time"
i en standard php.ini


--
Mvh
Tonni Aagesen
<agent29 AT stofanet DOT dk>



Michael Gandrup Vend~ (28-06-2002)
Kommentar
Fra : Michael Gandrup Vend~


Dato : 28-06-02 11:03

On Fri, 28 Jun 2002 11:07:59 +0200, Tonni Aagesen wrote:

>Har du prøvet med 'or die("ingen kontakt");' i din oprindelige forbindelse?

Ja det mener jeg. Der må jo være forskel på om et domæne ikke findes
og så på et som findes men som er nede. Igår hvor zipstat.dk var nede
faktisk hele aftenen kunne jeg på ingen mulig måde få den til at
droppe forsøget. Men prøvede jeg på et der var oppe, på en port som
jeg viste var lukket, så have jeg ingen problemer med at få den til at
give en error. Nu kan jeg ikke lige finde et domæne som er ned, så den
del bliver nødtil at vente.

>I øvrigt er 30 sekunder præcis det samme som værdien af "max_execution_time"
>i en standard php.ini

Ja det fandt jeg ud af, har også tjekket, sådan er min også sat op.
Derfor skulle jeg vel nok kunne sætte den til 5 også undgå den lange
vente tid ik'?

--
Med venlig hilsen
Michael Gandrup Vendelbo

Tonni Aagesen (28-06-2002)
Kommentar
Fra : Tonni Aagesen


Dato : 28-06-02 11:25

"Michael Gandrup Vendelbo" <michael@gandrup-vendelbo.com> skrev i en
meddelelse news:decohu4g10jucgbdro88lsf6h6hheldvju@4ax.com...

> Ja det fandt jeg ud af, har også tjekket, sådan er min også sat op.
> Derfor skulle jeg vel nok kunne sætte den til 5 også undgå den lange
> vente tid ik'?

Jeg har selv et script med en fsockopen og timeout:

function sConnect($con_host,$con_port)

{

$sock = fsockopen ($con_host, $con_port, $errno, $errstr, 10);

if (!$sock){

$eval[0] = FALSE;

$eval[1] = "[$errno] $errstr";

}

else {

$eval[0] = TRUE;

$eval[1] = $sock;

}

return $eval;

}

Her fungerer timeout fint! Jeg kører dog scriptet på Linux, og jeg kan ikke
rigtig huske, om der er nogle problemer med fsock på windows (hvis det da er
det du bruger).


--
Mvh
Tonni Aagesen
<agent29 AT stofanet DOT dk>







Michael Gandrup Vend~ (28-06-2002)
Kommentar
Fra : Michael Gandrup Vend~


Dato : 28-06-02 12:31

On Fri, 28 Jun 2002 12:24:47 +0200, Tonni Aagesen wrote:

>Jeg har selv et script med en fsockopen og timeout:
[Klip script]

Funktioner er ikke lige det jeg har gjort mest i, men burde den ikke
give et output? hvis man kalder den med:

sConnect("http://www.domaene.com", "80");

>Her fungerer timeout fint! Jeg kører dog scriptet på Linux, og jeg kan ikke
>rigtig huske, om der er nogle problemer med fsock på windows (hvis det da er
>det du bruger).

Bruger Linux. Jeg kikkede igår på flere forskellige færdige script.
De opførte sig på samme måde, altså hang ved kendte domæner som var
nede. Ellers virkede time out fint.

Gemmer lige dit script, så jeg har noget at sammenligne med.... hvis
ellers jeg kan få den til at give et output.

--
Med venlig hilsen
Michael Gandrup Vendelbo

Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste