如何使用PHP套接字从服务器接收数据

时间:2018-04-13 09:43:09

标签: php

我很难从服务器获取数据。基本上,服务器使用正确的用户名和密码等待任何人的连接。因此,当我使用本地资源管理器时,它会在浏览器上显示数据。 enter image description here

现在我要做的是,使用套接字获取此数据并将其转发到另一个服务器地址。但我甚至无法连接到服务器来获取我在浏览器上获得的数据。这是我尝试过的:

$host = "192.168.1.4/online?user=dneb&pass=mella88";
$port = 1850;
// don't timeout!
set_time_limit(0);
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
// bind socket to port
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
// start listening for connections
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n");

// accept incoming connections
// spawn another socket to handle communication
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");
// read client input
$input = socket_read($spawn, 1024) or die("Could not read input\n");
// clean up input string
$input = trim($input);
echo "server Message : ".$input;

当我运行此代码时,我收到警告消息:

  

警告:socket_bind():主机查找失败[11004]:请求的名称有效,但未找到所请求类型的数据。在第10行的C:\ xampp \ htdocs \ socket \ client.php中   无法绑定到套接字

或建议使用其他方法。

1 个答案:

答案 0 :(得分:0)

创建套接字服务器时,不要将主机指定为脚本的完整URL;这就是绑定失败的原因。

看看这个示例:http://www.php.net/manual/en/sockets.examples.php

请尝试更改

$host = "192.168.1.4";