2009-02-18 3 views
13

Служба хостинга, которую я использую в настоящее время, не позволяет мне использовать сокеты, возможно, не без оснований, с их стороны. Однако они позволяют мне использовать fsockopen. Мне было интересно, какая разница, потому что некоторые скрипты, которые работали с socket_create и даже stream_socket_server, не работают с fsockopen. При этом, если fsockopen должен работать, мой код указан ниже. То, что он делает, это прослушивание на своем собственном ip-адресе для входящих пакетов udp и их чтение.socket_create vs. fsockopen php

Благодаря

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

ответ

11

fsockopen создает подключение к хосту, а не сокет.

fsockopen ($ адрес) ~ == socket_connect (socket_create(), $ адрес)

Ваш хостинг-провайдер не хочет, чтобы вы слушаете на альтернативные порты/протоколы.

Если у вас есть работы, я бы не стал рассчитывать на то, что он всегда работает, поскольку это будет ошибка.

+0

спасибо «fsockopen == socket_connect (socket_create(), $ address)» именно то, что я искал. похоже, мне нужно найти нового хоста: P – Samuel

+0

где я могу получить более подробную информацию для вас. нет ли программы, прослушивающей порт 80? это не программа, прослушивающая 80 прослушивающее гнездо? –

+0

@JayapalChandran, что хотел сделать Samuel, это написать программу, которая слушает порт 80, а не подключаться к ней. Он хотел принять связи (упрощение, поскольку UDP является апатридом). Это может быть хорошим началом, если вы хотите узнать больше: http://en.wikipedia.org/wiki/Network_socket –

Смежные вопросы