php – Socket_read()说“不是有效的资源”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Socket_read()说“不是有效的资源”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1251字,纯文字阅读大概需要2分钟。
内容图文
![php – Socket_read()说“不是有效的资源”](/upload/InfoBanner/zyjiaocheng/697/450ecf7ae4a04fc096bda95a62187ffa.jpg)
我正在学习socket编程和使用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()说“不是有效的资源”全部内容,希望文章能够帮你解决php – Socket_read()说“不是有效的资源”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。