2009-02-18 69 views
13

我目前使用的託管服務不允許我使用套接字,可能出於很好的理由。不過,他們確實讓我用 fsockopen。我想知道有什麼區別,因爲一些腳本與 socket_create甚至 stream_socket_server,不與 fsockopen。這就是說,如果 fsockopen應該工作,我的代碼列在下面。它所做的就是在它自己的ip地址上偵聽傳入的udp數據包並讀取它們。socket_create與fsockopen php

感謝

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

回答

11

fsockopen創建一個主機,而不是一個監聽套接字連接。

的fsockopen($地址)〜== socket_connectsocket_create(),$地址)

您的託管服務提供商不希望你在備用端口/協議聽。

如果你有什麼工作,我不會指望它始終工作,因爲它會是一個錯誤。

+0

謝謝「fsockopen == socket_connect(socket_create(),$ address)」正是我所期待的。看起來像我需要找到一個新的主機:P – Samuel 2009-02-18 22:47:54