socket_bind() incapable de se lier à l'adresse
Je suis en train de créer un site Web Socket Serveur pour un petit projet, je travaille sur.
J'ai mis en place le serveur (situé à la maison) et le port transmis 80 et 22. J'ai lu ce tutoriel: ici
Et chaque fois que j'en ssh sur mon serveur pour exécuter "startDarmon.php" j'obtiens l'erreur suivante:
PHP Warning: socket_bind(): unable to bind address [98]: Address already in use in
/var/www/server/socket.class.php on line 48
2013-02-23 14:15:38 System: Socket bound to localhost:8000.
2013-02-23 14:15:38 System: Start listening on Socket
C'est ce que je pense, c'est de prévenir mon client de se connecter au serveur. Ainsi, dans le startDarmon.php le fichier que j'ai:
$WebSocket = new socketWebSocket('MY_IP_NOT_LAN_IP',8000);
Et à l'intérieur de mon fichier client, j'ai:
var host = "ws://MY_IP_NOT_LAN:8000/server/startDaemon.php";
Quelqu'un aurait-il des suggestions pour pourquoi ce n'est pas ce qui me permet d'établir une connexion?
À partir de ce que je sais, vous n'avez pas besoin de cette
Comment voulez-vous dire? Comment serait le début de serveur alors? Parce que dans le client,
Essayer de l'exécuter sur un autre port(vous avez besoin de faire une redirection de port sur vous rrouter)
J'ai couru sur un autre port, et, maintenant cela fonctionne. "Socket lié à localhost:3132", "Commencer à écouter de la Prise." Lorsque j'entre mon client, cependant, il ne veut pas se connecter.. Juste se bloque.. Mais je n'ai pas envoyé de port 3132 à mon serveur local (LAN IP) alors serait-ce une bonne idée?
server/startDaemon.php
Comment voulez-vous dire? Comment serait le début de serveur alors? Parce que dans le client,
var socket = new WebSocket(host)
nécessite toujours un hôte]ws://MY_IP_NOT_LAN:8000
qui est juste assez pour avoir la connexion. Cependant, cela ne résout pas votre problème, de son côté serveur baséEssayer de l'exécuter sur un autre port(vous avez besoin de faire une redirection de port sur vous rrouter)
J'ai couru sur un autre port, et, maintenant cela fonctionne. "Socket lié à localhost:3132", "Commencer à écouter de la Prise." Lorsque j'entre mon client, cependant, il ne veut pas se connecter.. Juste se bloque.. Mais je n'ai pas envoyé de port 3132 à mon serveur local (LAN IP) alors serait-ce une bonne idée?
OriginalL'auteur Phorce | 2013-02-23
Vous devez vous connecter pour publier un commentaire.
Je suppose que le problème est sur le serveur Linux.
Exécuter le
netstat -a -p -n
commande sous root (par exemple, avecsudo
) pour comprendre le processus qui utilise ce port. Alors peut-être faire un setsockopt(2) avecSO_REUSEADDR
(voir socket(7) pour plus de détails).
Le protocole TCP a certains délais spécifiés dans les minutes (par exemple keepalive, etc etc...). Voir, par exemple, tcp(7)
Je ne suggère la lecture d'un bon livre sur Linux système de programmation comme Advanced Linux Programmation et peut-être un peu de matériel sur la programmation réseau.
OriginalL'auteur Basile Starynkevitch
Vous pouvez réutiliser une adresse à l'aide du paramètre ci-dessous:
OriginalL'auteur ekrembk
Une autre application utilise déjà le port que vous essayez d'utiliser.Vous pouvez exécuter
de rendre le port gratuit.
OriginalL'auteur BlackJack