我正在为聊天系统实施websockets。 server.php是通过带有php /www/server.php
的ssh调用的,并且第一次执行正常;但如果进程停止(ctrl + z),则在尝试再次调用php /www/server.php
后会显示此错误:
Warning: socket_bind(): unable to bind address [48]: Address already in use in /www/server.php
这些是 /www/server.php 文件的内容:
<?
$host = '10.10.0.103';
$port = '1337';
//Create TCP/IP sream socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//reuseable port
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
//bind socket to specified host
socket_bind($socket, 0, $port);
//listen to port
socket_listen($socket);
// ... etc
所以,我有两个问题:
使用FLAG停止php /www/server.php
作业后,是否可以重复使用相同的地址/端口?是不是 SO_REUSEADDR 应该重复使用相同的地址/端口?
此问题的最佳做法是什么?重新启动websockets服务器可能是一项日常任务,例如:更新 /www/server.php
感谢您的任何提示!