TCP Timeout – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

TCP Timeout – PHP – Fórum – Programujte.comTCP Timeout – PHP – Fórum – Programujte.com

 

Hunty
~ Anonymní uživatel
48 příspěvků
7. 9. 2014   #1
-
0
-

Ahoj,
potřebuji se přes PHP připojit na jeden HTTP server přes TCP, ale spojení nenastane.

Server je na 213.239.219.93:11490. Když se na tento server připojuji z lokálního PC (přes C++), vše proběhne v pořádku, ale pokud se snažím použít PHP na webovém serveru, nefunguje to. Pokaždé to hlásí

Warning: fsockopen() [function.fsockopen]: unable to connect to 213.239.219.93:11490 (Connection timed out) in /home/etsclanc/public_html/Bot/script.php on line 2
Connection timed out (110)


Můj kód je tento:
 

<?php
$fp = fsockopen("213.239.219.93", 11490, $errno, $errstr, 30);
if (!$fp)
{
    echo "$errstr ($errno)<br />\n";
} 

else
{
    fwrite($fp, "Data");
    while (!feof($fp))
	{
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Výše uvedený server je normální HTTP server... webová stránka, ale nechápu, proč se na ni nelze připojit přes jiný webový server - resp. proč nelze navázat TCP spojení. Zkusil jsem tuto stránku: http://www.infobyip.com/tcpportchecker.php a ta se připojit dokáže, resp. vidí, že je port 11490 otevřený.

Zkoušel jsem více webhostingů podporující PHP, ale z žádného se mi nepodařilo připojit. Už jsem ztracený, mám pocit, že jsem zkusil všechno. Nechápu proč to nefunguje, když se můžu připojit TCP klientem z PC.

Kde může být problém? Trocha teorie..?
Hunter
 

Nahlásit jako SPAM
IP: 185.22.125.–
Kit+15
Guru
7. 9. 2014   #2
-
0
-

#1 Hunty
Na webových serverech obvykle bývá fsockopen() zakázáno.

Zkus místo toho použít funkci file_get_contents(). V této podobě mi to funguje:

<?php
echo file_get_contents('http://213.239.219.93:11490');
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Hunty
~ Anonymní uživatel
48 příspěvků
7. 9. 2014   #3
-
0
-

Já se potřebuji na stránku připojit přes TCP abych mohl odesílat HTTP request. file_get_contents() mi nepomůže. Navíc, zdá se, že i ten se dostává do timeoutu. :/

Zkoušel jsem i socket_connect(), ale se stejným výsledkem.

Nahlásit jako SPAM
IP: 185.22.125.–
Kit+15
Guru
7. 9. 2014   #4
-
0
-
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Hunty
~ Anonymní uživatel
48 příspěvků
7. 9. 2014   #5
-
0
-

A odkud ten PHP spouštíš? Mě nefunguje ani to file_get_contents()   

Když si zkusím rozjet můj kód třeba na http://writecodeonline.com/php/, funguje to skvěle (socket_connect() ...)
Vypadá to, že server blokuje nějaký IP Addressy nebo tak něco. Nebo je to čistě jen otázka webového serveru, z kterého se to spouští?

Nahlásit jako SPAM
IP: 185.22.125.–
Kit+15
Guru
7. 9. 2014   #6
-
0
-

#5 Hunty
Tohle jsem spouštěl z lokálu, ale běžně přes něj z jiného serveru čtu tuhle konferenci.

Na freehostingu bývá socket_connect() zakázaný kvůli spammerům - bylo by velmi jednoduché z toho udělat spamovací bránu.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Hunty
~ Anonymní uživatel
48 příspěvků
7. 9. 2014   #7
-
0
-

Hosting je placenej a navíc, můžu se připojit třeba na google úplně v pohodě. Jen ne na tenhle server. Z lokálu mi to taky funguje, ale to není to, co potřebuju. :/

Nahlásit jako SPAM
IP: 185.22.125.–
Kit+15
Guru
7. 9. 2014   #8
-
0
-

#7 Hunty
Když je to placený hosting, tak se zkus zeptat na jeho technické podpoře.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
KIIV
~ Moderátor
+43
God of flame
7. 9. 2014   #9
-
0
-

jenze na google se pripojujes na port 80.. neobvykly porty sou spis zablokovany

(a to bud u tebe, ze se na ten svuj port nedostanes z venku, nebo na serveru je zablokovany pristup ven na takovyhle divny porty - nebo spis bude treba povolenej ven jen 80, 443 a tak podobne)

EDIT: a jelikoz je to z tvoji strany pristupne, tak bude blokovani spis na strane serveru

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Hunty
~ Anonymní uživatel
48 příspěvků
7. 9. 2014   #10
-
0
-

Původně jsem si myslel, že se třeba php snaží překládat IP adresu na hostname nebo tak něco.. a nebo že je vzdálený server schovaný za nějakou proxy.

Každopádně, udělal jsem si takový extended-webhosting na www.php5.cz, kde všechno funguje tak jak má. Psal jsem i na technickou podporu u webhostingu kde mám svůj server, tak se uvidí co z toho bude.

Díky za pomoc :-)

Nahlásit jako SPAM
IP: 185.22.125.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

Podobná vlákna

TCP server, TCP klient v Linuxu — založil kocourOggy

Timeout operace — založil Gibon

Mysql_connect timeout — založil Anonymní uživatel

Timeout a udpateDisplay — založil vlado0991

[C#]Connection Timeout (MySQL) — založil CZechBoY

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý