Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
IdHTTPServer ve PHP bağlantısı
#1
Selamlar,
Dünden beri uğraşıyorum fakat bir türlü sonuca ulaşamadım.

D7 ile IdHTTPServer (indy 9.00) kullanarak 7777 portundan yayın yapan basit bir server yazdım kodları aşağıda.

procedure TformMain.Server1CommandGet(AThread: TIdPeerThread; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
   sid:=Trim(ARequestInfo.Session.SessionID);
   ListBox1.Items.Add(ARequestInfo.RemoteIP+' : '+sid);
    AResponseInfo.ContentText := sid;

Yazdığım bu servera php den cURL ile bağlanmak istediğimde;

CURLE_COULDNT_CONNECT (7)
Failed to connect() to host or proxy.

hatası ile karşılaşıyorum. Yerel ağda sorunsuz bağlanabiliyorum fakat uzak ağdan bağlanmak istediğimde bu hatayı veriyor. Sebebi hakkında fikri olan arkadaşlardan yardım rica ediyorum.

Bu arada PHP sayfasındaki cURl bağlantı kodu da aşağıdadır.
PHP Kod:
function url_get_contents ($Url) { if (!function_exists('curl_init')){ 
       die
('CURL is not installed!');
   }

   $ch curl_init();
   curl_setopt($chCURLOPT_URL$Url);
   curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
   curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
   curl_setopt($chCURLOPT_FAILONERROR1);

if (
curl_exec($ch) === false) 
{ 
echo 'Curl hatası : ' curl_errno ( $ch ) ; 
} 
else 
{ 
$output 
"hata yok : ".curl_exec($ch); 
}
curl_close($ch) ;
   return $output  
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#2
IdHTTPServer çalıştığın yer bir internet sunucusu değil ev pc ise modemden port yönlendirmesi yapman gerekiyor.
Cevapla
#3
Port yönlendirmesi açık, telefondan yada başka bir uzak bilgisayardan herhangi bir tarayıcı ile direk ip ve port yazınca girip işlem yapabiliyorum sadece php de cURL ile bağlanamıyorum.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#4
Belki portu belirtmediğiniz için olabilir mi ?
PHP Kod:
curl_setopt ($chCURLOPT_PORT 7777); 

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Server1CommandGet methodunu görünce, php tarafında belki http method(GET,POST) parametresini de belirtmeniz gerekiyor olabileceği aklıma geldi.
One of the major software engineering challanges is managing change.
Cevapla
#5
Portta tanımlı gelen hata,
Failed to connect to 213.xxx.xxx.xxx port 7777: Bad access

şeklinde.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#6
Deneme amaçlı şöyle bişi yaptım çalıştı,
işyerindeki bilgisayarda ilk mesajımda yazdığım minik programı çalıştırdım, 7777 potunu dinlemeye başladı.

bir firmadan test amaçlı win bulut server açtırdım, bu serverada programı kurdum, fakat servardaki program şu şekilde çalışıyor; gelen istek olduğunda gidip benim işyerindeki makinaya istek gönderip ondaki sonucu alıp karşıya gönderiyor.

daha sonra da eticari.com dan bir php sayfasından cURL ile bu serverdaki programa bağlanıp işyerindeki makinadan veri çekmesini istedim.

sonrada harici herhangi bir cihazdan eticari.com daki php sayfasını çağırdığımda işyerindeki makinanın verilerini alabildim.

Benim çıkardığım sonuç ; php cURL ile bağlanacağınız IP mutlaka bir name server a kayıtlı olmalı (mıdır?).
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter





Konuyu Okuyanlar: 1 Ziyaretçi