Socket_read() 说“不是有效的资源”

2023-12-03

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

代码:

服务器.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);

客户端.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";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Socket_read() 说“不是有效的资源” 的相关文章

  • 如何从 Laravel 中的表中选择所有列名称?

    我试图从表中获取所有列名Teller 功能 public function getTableColumns tables return DB select DB raw SELECT COLUMN NAME DATA TYPE COLUMN
  • 搜索引擎如何找到相关内容? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Google 在解析网络时如何找到相关内容 例如 Google 使用 PHP 原生 DOM 库来解析内
  • 如何使用 select 将数据从服务器发送到客户端

    我在一些教程的帮助下想出了一个代码 用于使用选择功能与客户端连接并接受来自客户端的消息 现在我想做的是在服务器需要时将数据发送到特定的客户端 如何做到这一点 提前致谢 服务器代码 include
  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • 检查 PHP 中“@”字符后面的单词

    我现在正在制作一个新闻和评论系统 但是我已经在一个部分上停留了一段时间了 我希望用户能够在 Twitter 上引用其他玩家的风格 例如 用户名 该脚本看起来像这样 不是真正的 PHP 只是想象脚本 3 string I loved the
  • Woocommerce 让产品显示在存档页面中

    我正在尝试让所有产品显示在我商店的存档页面中 我想知道他们的id我正在使用我的一个钩子 它在 wp head 上运行并检查 if is product category 我想以某种方式访问 产品的查询并获取它们的 ID if is prod
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • 如何在原则 2 迁移中删除外键

    我想在原则 2 迁移中删除外键 但没有 dropForeignKeyConstraint 有谁知道怎么丢掉吗 public function down Schema schema table schema gt getTable table
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 在 PHP 中使用 phpseclib 时出现 RSA 问题

    我正在尝试在 phpseclib 中使用 RSA 实现 我认为在函数中执行一次代码并重新使用该函数会更容易 当我尝试向代码发送短信时 我收到一条错误消息 提示 解密错误 测试还让我意识到每次代码运行时密文都是不同的 所以我显然在那里做错了什
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 如何使 Laravel 雄辩地进行“IN”查询?

    我想在 Laravel Eloquent 中进行查询 就像这里的原始 MySQL 查询一样 SELECT from exampleTbl where id in 1 2 3 4 我已经在 Laravel Eloquent 中尝试过这个 但它
  • 将java对象序列化为文本文件

    我有一个java库 我想将java对象的实例保存到文本文件中 我尝试使用所有java库进行序列化和反序列化为xml http karussell wordpress com 2009 09 03 xml serializers for ja
  • 在Python中从文本文件读取多个变量的聪明方法

    我正在尝试加载存储在单个文本文件中的多个向量和矩阵 对于 numpy 该文件如下所示 VectorA 1 2 3 4 MatrixA 1 2 3 4 5 6 VectorB 3 4 5 6 7 理想的解决方案是拥有一个字典对象 例如 Vec
  • py2exe 因 pandas 导入失败

    我有一个 python 脚本 我想使用 py2exe 将其制作成可执行文件 当我尝试导入 pandas 时它失败了 这实际上是我的示例失败脚本中的全部内容 import pandas 回溯看起来像 File c users appdata
  • javascript 在数组中的对象之间保留某些属性

    我想从数组中的对象中删除每个属性 除了其中一些属性 var listToKeep name school var arrayOfObjects id abc name oh school a sport a id efg name em s
  • 模板静态成员初始化顺序

    我有一个与此处发布的上一个问题相关的问题静态字段初始化顺序假设我有以下结构 有 2 个静态成员x and y 模板类型本身 include
  • Android - 为我的应用程序创建一个将从网页链接打开的架构

    我正在尝试创建一个类似 myapp somthing anotherthing 的架构 如果网页或任何其他应用程序链接到该架构将打开我的应用程序 我已将其添加到我的 AndroidManifest xml 中以用于我的主要活动
  • BufferGeometry 面材质

    使用 BufferGeometry 时 如何将材质分配给面 是否有类似数组包含相同信息的东西Face materialIndex BufferGeometry不支持MeshFaceMaterial
  • 将sql查询输出到html表中

    我试图将此 PHP SQL 查询的输出放入数据库表中 但它将所有行数据输出到一列中 if isset POST submit name htmlentities POST name parts explode name lastname a
  • OpenCV Mat 旋转得到错误结果

    我想将图像旋转 90 度 我的代码如下 int main int argc const char argv Mat img imread Users chuanliu Desktop src4 p00 JPG resize img img
  • 您没有 /var/lib/gems/2.3.0 目录的写权限

    我在 ubuntu 16 04 上安装了 ruby which ruby usr bin ruby ruby v ruby 2 3 0p0 2015 12 25 x86 64 linux gnu gem install bundler ER
  • 我可以使用 Liquid 模板在 Jekyll 中实现合适的平铺分页吗?

    I ve found this nice jekyll theme http www jacoporabolini com emerald with good looking pagination Unfortunately is only
  • 获取MySql数据并将其存储到Javascript数组中

    想要从 Mysql 检索记录数据并将其存储到 Javascript 数组中 以获取以下格式的 heatmap js 地图数据 var testData max 46 data lat 33 5363 lon 117 044 value 1
  • 什么时候我可以放心地用-O3编译程序?

    我见过很多人抱怨 O3 option GCC 程序无法使用编译选项 O3 浮点问题由 David Hammen 提供 我查看了 GCC 的手册 O3 Optimize yet more O3 turns on all optimizatio
  • Java EE 6 与 Spring 3 堆栈 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我现在正在开始一个新项目
  • 如何在 Angular 中重现 Angular JS .broadcast() / .on() 行为?

    我正在努力用 Angular8 重写 AngularJS 应用程序 我已经阅读了组件之间通信的不同方法 但鉴于我当前的要求 似乎无法找到实现此目的的正确方法 我目前有 2 个兄弟组件 它们都使用处理基本 CRUD 功能的通用服务 表单组件调
  • 将 ORB 特征与阈值进行匹配

    我的项目是基于android的草药识别 我使用 ORB 来获取关键点 特征并匹配特征 我想使用这个算法 我使用 4 个参考图像 并将它们的特征 image1 与 image1 1 2 1 3 1 4 2 3 3 4 进行匹配 然后我将到数据
  • SQL Server Express 4GB 限制

    简单问题 4GB 限制是针对每个数据库还是针对已安装的 SQL Server 实例 如您所知 您可以在 SQL Server 实例中创建多个数据库 每个数据库的大小限制为 4GB
  • 控制范围和预测范围

    我已经回顾了模型预测控制的参考书目和 Gekko 编程结构 尽管我了解它的编程方式及其目的 例如 我想了解 Gekko 如何根据 Seborg 中的相关内容来管理控制范围和预测范围之间的差异 我看不出代码有什么区别 下面是一个用于说明的 M
  • Socket_read() 说“不是有效的资源”

    我正在学习套接字编程并尝试使用 php 我想使用客户端连接到套接字服务器并从客户端读取服务器的响应 代码 服务器 php address 127 0 0 1 port 3343 echo I am here set time limit 0