我目前使用的托管服务不允许我使用套接字,这可能是他们的理由。但是,它们让我使用 fsockopen 。我想知道区别是什么,因为一些使用 socket_create 甚至 stream_socket_server 的脚本不能与 fsockopen 一起使用。也就是说,如果 fsockopen 应该有效,我的代码将在下面列出。它的作用是监听自己的ip地址以获取传入的udp数据包并读取它们。
由于
$sock = fsockopen("udp://x.x.x.x", $port);
while(1)
{
$buf = fread($sock, 200);
flush();
ob_flush();
}
答案 0 :(得分:12)
fsockopen创建与主机的连接,而不是监听套接字。
fsockopen($ address)〜== socket_connect(socket_create(),$ address)
您的托管服务提供商不希望您收听备用端口/协议。
如果你有什么工作,我不会指望它总是起作用,因为它会是一个错误。