Page 1 sur 1

Problème de conf serveur

Posté : 26 mai 2008, 14:54
par Tipp-ex
Bonjours,

Donc voila j'ai un petit script php qui marche sur l'hébergeur online.net et pas sur 1 and 1

Voici le code
<?php

// Constant
define('PACKET_SIZE', '1400');
define('SERVERQUERY_GETCHALLENGE', "\xFF\xFF\xFF\xFF\x57");
define ('REPLY_GETCHALLENGE', "\x41");

// Ip address and port
$_ip = 'XXX.XXX.XXX.XXX';
$_port = 'XXXXXX';

// Open a connection with server
$socket = stream_socket_client('udp://'.$_ip.':'.$_port, $errno, $errstr, 30);
stream_set_timeout($socket, 1, 0);

// Send command to server
$cmd = SERVERQUERY_GETCHALLENGE;
$length = strlen($cmd);
fwrite($socket, $cmd, $length);

// Get response from server
$response = fread($socket, PACKET_SIZE);

echo "socket: $socket";
echo "<br />";
echo "length: $length";
echo "<br />";
echo "response: $response";
echo "<br />";
echo "Le serveur blabla est...";
echo "<br>";

if (empty($response))
{
echo '<strong>Offline</strong> reboot vite !';
}
else
{
echo '<strong>Online</strong> tant mieux !';
}

?>
Réponse de online.net
socket: Resource id #2
length: 5
response: sdfsdf
Le serveur XXXXX est...
Online tant mieux !
Donc ici pas de problèmes ^^

Réponse de 1 and 1

socket: Resource id #2
length: 5
response:
Le serveur basufly1 est...
Offline reboot vite !
Le serveur "test" que j'ai utilisé marche très bien et il était online quand j'ai testé (en même temps) sur les 2 hébergeurs le script plus haut. je voudrais savoir comment faire pour que sa marche avec 1 and 1

Si le problème viens d'une fonction par exemple .....

Après si une personne pourrait m'indiquer un lien ou trouver mon problème cela serais super

Posté : 26 mai 2008, 16:01
par Sékiltoyai
Tu as $errno et $errstr lors de la connexion, ils ne sont pas là pour faire joli… :-/

Posté : 26 mai 2008, 17:46
par Tipp-ex
Déja merci de m'avoir répondu :)

En affichant les paramètres errno et errstr, errno = 0 donc pas d'erreur et errst n'a donc pas de message d'erreur :cry:

Posté : 26 mai 2008, 22:04
par Sékiltoyai
Arf, je vois.
Lu dans la doc :
Les sockets UDP sembleront parfois s'ouvrir sans erreur, même si l'hôte distant n'est pas accessible. Cette erreur ne deviendra apparente que lorsque vous essaierez de lire ou écrire des données avec cette socket. La raison à cela est que UDP est un protocole sans connexion, ce qui signifie que le système d'exploitation n'a pas à établir de lien pour la socket, jusqu'à ce qu'il commence à échanger des données.

Posté : 27 mai 2008, 14:39
par Tipp-ex
Hum je pense mais je suis pas sur que le problème viens que 1and 1 bloque les fonctions fread
fgets, fgetss.... Et donc la sa peut pas marcher. :cry:

Existe t'il un d'autre fonction comme fread et fgets permettant de faire marcher le script?

Posté : 27 mai 2008, 19:36
par Sékiltoyai
Bah en fait c'est pour le moins bizarre qu'ils bloquent les fonctions fread et compagnie, parce que d'une part fread/fwrite sert aussi à traiter les fichiers, mais aussi que si elles étaient bloquées, tu devrais avoir une erreur fatale de PHP. Concernant stream_socket_client, il y a plus de chances qu'ils y ait mis une limitation (de toute façon sur un mutualisé, il ne faut pas s'attendre à facilement écouter un port…), sans la bloquer (confère le point précédent) mais je ne vois pas ce qu'ils auraient fait. Peut être peux-tu leur envoyer un mail pour leur demander…
Tiens, pour information, tu as mis quel port pour l'écoute ?

Posté : 29 mai 2008, 06:33
par Xenon_54
Il est possible que 1and1 bloque le traffic UDP en sorti pour des raisons de sécurité. Vérifie avec eux.