2009-02-18 14 views
13

Şu anda kullandığım barındırma hizmeti, büyük olasılıkla kısmen iyi bir sebepten dolayı soket kullanmama izin vermiyor. Ancak, fsockopen kullanmama izin veriyorlar. Farkın ne olduğunu merak ediyordum, çünkü soket ve akış_socket_server ile çalışan bazı betikler fsockopen ile çalışmaz. Yani, fsockopen çalışacaksa, kodum aşağıda listelenmiştir. Ne yapar, gelen udp paketleri için kendi ip adresini dinler ve okur.socket_create vs. fsockopen php

Teşekkür

$sock = fsockopen("udp://x.x.x.x", $port); 
while(1) 
{ 
    $buf = fread($sock, 200); 
    flush(); 
    ob_flush(); 
} 

cevap

11

fsockopen bir dizi değil, bir dinleme soket bağlantısı oluşturur.

fsockopen ($ adres) ~ == socket_connect (socket_create(), $ adres)

Barındırma sağlayıcınız alternatif bağlantı noktaları/protokollerinde dinleyen istemiyor.

Çalıştığınız şey varsa, her zaman bir hata olacağından emin olmazdım.

+0

teşekkürler "fsockopen == socket_connect (socket_create(), $ adres)" tam olarak aradığım şey buydu. yeni bir host bulmam gerekiyor gibi görünüyor: P – Samuel

+0

cevabınız için daha ayrıntılı bilgi alabilirim. 80 numaralı limanda dinleyen bir program yok mu? Dinleme soketinde 80 dinleyen bir program değil mi? –

+0

@JayapalChandran, Samuel'in ne yapmak istediğini port 80'de dinleyen programa bağlanmadı. Bağlantıları kabul etmek istedi (UDP vatansız olduğu için sadeleştirme). Daha fazla bilgi edinmek istiyorsanız, bu iyi bir başlangıç ​​olabilir: http://en.wikipedia.org/wiki/Network_socket –