我用php(socketsever.php)写了一个非常基本的socket服务器。我使用nohup让它在后台运行。我想在其他页面中使用在socketserver.php中创建的套接字资源。因此,当有人浏览某个页面时,服务器将通过socket发送一些内容。我找不到在其他页面中使用socketserver中套接字资源的方法。
发布于 2013-02-08 11:27:28
我相信你要找的是SO_REUSEADDR。这将允许多个连接到php脚本正在侦听的端口。您只需在执行socket_create之后设置此套接字选项即可完成此操作。
来自php.net的示例
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!is_resource($socket)) {
echo 'Unable to create socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo 'Unable to set option on socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_bind($socket, '127.0.0.1', 1223)) {
echo 'Unable to bind socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);
if ($rval === false) {
echo 'Unable to get socket option: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
echo 'SO_REUSEADDR is set on socket !' . PHP_EOL;
}
?>https://stackoverflow.com/questions/14764342
复制相似问题