2009-02-18 15 views
13

Le service d'hébergement que j'utilise actuellement ne me laisse pas utiliser les sockets, probablement pour une bonne raison de leur part. Ils font, cependant, laissez-moi utiliser fsockopen. Je me demandais quelle est la différence, car certains scripts qui ont travaillé avec socket_create et même stream_socket_server, ne fonctionnent pas avec fsockopen. Cela dit, si fsockopen devrait fonctionner, mon code est répertorié ci-dessous. Ce qu'il fait est qu'il écoute sur sa propre adresse IP pour les paquets udp entrants et les lit.socket_create vs fsockopen php

Merci

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

Répondre

11

fsockopen crée une connexion à un hôte, et non une prise d'écoute.

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

Votre fournisseur d'hébergement ne veut pas que vous écoute sur les ports/protocoles alternatifs.

Si ce que vous avez fonctionne, je ne compterais pas toujours travailler comme ce serait un bug.

+0

merci "fsockopen == socket_connect (socket_create(), $ adresse)" était exactement ce que je cherchais. On dirait que j'ai besoin de trouver un nouvel hôte: P – Samuel

+0

où puis-je obtenir des informations plus détaillées pour votre réponse. N'y at-il pas un programme d'écoute sur le port 80? n'est pas un programme d'écoute sur 80 une prise d'écoute? –

+0

@JayapalChandran ce que Samuel voulait faire était d'écrire le programme qui écoute sur le port 80, pas de s'y connecter. Il voulait accepter les connexions (une simplification, puisque l'UDP est apatride). Cela pourrait être un bon début si vous voulez en savoir plus: http://en.wikipedia.org/wiki/Network_socket –