gpt4 book ai didi

php - Socket_read()说 “not a valid resource”

转载 作者:行者123 更新时间:2023-12-03 11:53:12 38 4
gpt4 key购买 nike

我正在学习套接字编程,并尝试使用php。
我想使用客户端连接到套接字服务器,并从客户端读取服务器的响应。

的代码:

Server.php:

$address="127.0.0.1";
$port=3343;
echo "I am here";
set_time_limit (0);
if(false==($socket= socket_create(AF_INET,SOCK_STREAM, SOL_TCP)))
{
echo "could not create socket";
}
socket_bind($socket, $address, $port) or die ("could not bind socket");
socket_listen($socket);
if(($client=socket_accept($socket)))
socket_write($client, "Welcome!!", 1024);

socket_close($socket);

Client.php
$host="127.0.0.1" ;
$port=3343;
$timeout=30;
$sk=fsockopen($host,$port,$errnum,$errstr,$timeout) ;
if (!is_resource($sk)) {
exit("connection fail: ".$errnum." ".$errstr) ;
} else {
echo socket_read($sk, 256);
//echo "Connected";
}

在连接时,

服务器输出:
I am here

客户输出:
Warning: socket_read(): supplied resource is not a valid Socket resource in C:\xampp\htdocs\users\srv\test\client.php on line 16

最佳答案

在这里找到问题。

socket_read()不适用于尚未使用socket_create()创建的套接字。

工作代码:

$host="127.0.0.1" ;
$port=3343;
$timeout=30;
$sk=fsockopen($host,$port,$errnum,$errstr,$timeout) ;
if (!is_resource($sk)) {
exit("connection fail: ".$errnum." ".$errstr) ;
} else {
while (!feof($sk)) echo fgets($sk, 256); //This does the trick
//echo "Connected";
}

关于php - Socket_read()说 “not a valid resource”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29060616/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com