【发布时间】:2019-12-27 00:22:20
【问题描述】:
我需要构建一个简单的 PHP 服务套接字,以作为客户端与远程套接字服务器连接,然后进行 lintening。问题是我需要连接主机 URL 而不是主机 IP。
我试过socket_create() 方法,但它只使用IP 连接。我尝试过的其他方法是stream_socket_server(),它允许 URL 连接,但我无法继续收听以接收响应。
echo "Socket started...\n";
$server = 'ssl://sockserver.com/moreurl/params?56298';
$host = "sockserver.com";
$port = 80;
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
$result = socket_connect($socket, $server, $port);
socket_bind($socket, $host);
socket_listen($socket);
while (true) {
$result = socket_read ($socket, 1024);
if($result){
echo "Reply From Server :".$result;
}
}
socket_close($socket);
所以,我需要使用类似主机的 URL 来监听远程服务器 Socket 作为 PHP 客户端。
【问题讨论】:
-
您的代码中缺少
socket_bind和socket_listen...如果不将套接字绑定到实际IP 地址,您将无法建立连接... -
@LarsStegelitz,谢谢你的回复,我用这个方法改变了我的代码,我对错误感到惊讶:“socket_read():无法从套接字[107]读取:传输端点是未连接”。这个结构正确吗?
标签: php sockets websocket fsockopen