Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

socket_bind() unable to bind address

I'm trying to create a Web Socket Server for a small project I am working on.

I have set up the server (located at home) and have port forwarded 80 and 22. I read this tutorial: here

And whenever I ssh into my server to run "startDarmon.php" I get the following error:

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

This is what i think is preventing my client from connecting to the server. So in the startDarmon.php file I have:

$WebSocket = new socketWebSocket('MY_IP_NOT_LAN_IP',8000);

And inside my client file, I have:

var host = "ws://MY_IP_NOT_LAN:8000/server/startDaemon.php";

Does anyone have any suggestions to why this is not allowing me to establish a connection?

like image 914
Phorce Avatar asked Dec 21 '22 09:12

Phorce


1 Answers

I'm guessing the issue is on the Linux server.

Run the netstat -a -p -n command under root (e.g. with sudo) to understand which process is using that port. Then perhaps do a setsockopt(2) with SO_REUSEADDR (see socket(7) for more).

The TCP protocol has some specified delays in minutes (eg keepalive, etc etc...). See e.g. tcp(7)

I do suggest reading a good book on Linux system programming like Advanced Linux Programming and perhaps some material on network programming.

like image 163
Basile Starynkevitch Avatar answered Dec 28 '22 09:12

Basile Starynkevitch