问题标签 [fsockopen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1683 浏览

php - fsockopen 不会发送 post 数据

已解决:问题出在内容类型中。本来应该

帮助链接:http ://www.bradino.com/php/empty-post-array/

我似乎无法获取POST要发送的数据。我已经对这种方法进行了一段时间的梳理,每次运行测试时,$_POST数组都是空的。

以上是我静态调用的另一种方法,它HttpRequest使用所需的方法创建 。下面是被子调用并传递相同数据但包括方法名称的方法。即:POST

0 投票
1 回答
944 浏览

php - 有没有办法“收听”到 Telnet 流?

我只是想要一种简单的方法来查看 Telnet 流中的最后两行是什么。例如,如果您可以想象一个终端窗口,我只想能够输入一个命令,按回车键,然后查看响应是什么。到目前为止,我可以执行命令,但无法评估响应。不仅仅是返回两行响应,而是stream_get_line从流中返回每一行。

任何人都可以建议一个函数或更好的编写方法吗?

可能是我不完全理解stream_get_line();如果我在做一些愚蠢的事情,请有人帮帮我。谢谢!

0 投票
1 回答
4649 浏览

php - PHP fwrite()到套接字 - 不允许操作?

我正在 PHP 中制作一个简单的实用程序来通过 UDP 控制我的 Minecraft 服务器:

由于某种原因 fwrite 抛出此错误:

注意:fwrite() [function.fwrite]:发送 20 字节失败,errno=1 操作在 /homepages/44/d217581656/htdocs/xenforo/util/remoterestart/interface.php 中不允许在第 22 行

有谁知道为什么?

0 投票
3 回答
6523 浏览

php - fsockopen 连接直到超时才会关闭

背景:我必须创建一个普通站点,该站点接受传入的已发布 XML,并通过套接字连接将 XML 发送到服务器,然后显示从服务器发回的 XML。十分简单。

问题:我使用fsockopen()连接到服务器并发送 XML没有问题。从服务器读取 XML 是一个全新的问题。正常的

没有成功,因为服务器返回一个 XML 字符串,并且只返回一个 XML 字符串(没有长度信息、eof、eol 等)。因此它会等到超时,显示接收到的 XML 和超时错误。我的问题与这只恐龙相似。

简而言之,我想在套接字上读取 XML 并在没有更多数据发送后立即关闭它(不等待超时)。将超时设置为较低的值也不可行,因为服务器响应可能在 2--30 秒之间变化。

解决方案:经过整个下午的努力,我决定分享以下解决方案(批评)。

事实证明,我的主要问题是阻塞。所以首先,[1] 我必须禁用 stream_set_blocking 以便fgets()可以持续检查新数据是否可用。如果未禁用fgets()将从服务器获取 XML,然后循环将在第二次尝试时卡住,因为它将等到更多数据可用(永远不会)。

我知道,一旦我们读取了一些数据,如果返回任何空fgets() ,我们可以立即关闭连接(因此,如果有必要,我们仍然可以设置fgets()的第二个参数)。

在使用这个网站几个月后,我终于在 stackoverflow 上发布了一些东西。

0 投票
3 回答
13291 浏览

php - 无法通过 fsockopen 在 PHP 中建立 TLS 连接

几天以来,我一直在尝试通过我新安装的 Ubuntu 服务器上的 fsockopen() 与 PHP 中的 SMTP 服务器建立 TLS 连接。我几乎尝试了所有方法并搜索了几个小时,但仍然无法正常工作。

PHP 代码如下所示:

输出只是 (0),即 $errstr = null 和 $errno = 0。

OpenSSL 已安装并启用:

并且注册了以下流套接字传输:tcp、udp、unix、udg、ssl、sslv3、sslv2、tls。

该端口在控制台的 telnet 工作时打开。

任何想法有什么问题或我如何至少可以获得更多的调试输出?

谢谢,马库斯

0 投票
1 回答
2162 浏览

php - php fsockopen fgets 变得太慢

我在尝试使用 fsockopen 和 fgets 获取网页内容时遇到问题。我可以轻松地从 Web 服务器接收标头,如下所示:

我的代码如下:

输出是这样的:

我真的很想知道为什么只需要 2 秒才能获得 219 字节的数据。它太慢了。要获取整个页面,包括数百个 fget 迭代,它需要 40 秒。而如果你使用Firefox,它只是一秒钟..

我想知道是什么导致 fgets 变得太慢。

感谢您的阅读。

0 投票
1 回答
1083 浏览

nginx - 异步请求无法使用 fsock - php - Nginx

我有一个 php 脚本,它执行此处描述的公认答案。

除非我之前添加以下内容,否则它不起作用fclose($fp)

即使是一个空白的 for 循环也可以代替上面的工作!

但重点是什么?我想要异步调用:(

更让我痛苦的是,在 Apache 驱动的环境中,如果没有上述代码片段,相同的代码也可以正常运行。

有人知道 Nginx 或 php-fpm 是否对此类请求有问题?

0 投票
2 回答
1427 浏览

java - 将字符写入 Java 套接字时出现 fsockopen 10053 错误

对,

我正在尝试用 PHP 编写一个小脚本,它将游戏中的聊天包发送到 Minecraft。

现在,如果连接成功,那么我发送 2 个“数据包”。

一个带有整数 3 的字节,告诉 Minecraft 它应该将传入的网络流量作为 Packet3Chat “数据包”处理:

这似乎可以正常工作**。

所需的第二个“数据包”是将字符串的长度作为有符号的 short

这似乎也可以正常工作**。

现在剩下要做的就是发送实际的字符串,作为 chars

我尝试使用以下方法拆分字符串str_split并单独发送每个字符:

而且我还尝试通过这些方法仅发送整个字符串而不将其拆分,但是我无法成功打印出接收到的字符readChar()System.out.println仅打印一个空行),并且我收到fwrite 错误 10053 at在发送字符期间的某个时间点 - 即 anEOFExceptionreadChar().

我在 Windows 7 上运行修改后的 Minecraft Server,并在同一台机器上使用 XAMPP 运行 PHP 5.x。

任何想法为什么连接会“被软件关闭”?为什么它只会在发送字符/字符串期间而不是在发送字节/短字节期间关闭?


** 是的,我曾经用来System.out.println验证 Minecraft 收到的数据。

0 投票
2 回答
1035 浏览

php - 脚本完成执行后如何使套接字保持活动状态

我编写了一个 php 脚本,它通过 tcp 套接字连接到 facebook 聊天。我的问题是:

  1. 即使 php 脚本结束,如何让套接字保持活动状态?我希望其他 php 文件通过此套接字与 facebook XMPP 服务器通信?我试图将套接字保存为会话变量,但它不起作用。

  2. 根据一些论坛讨论,我尝试使用 pfsockopen 而不是 socket_create。但是当我调用 pfsockopen 函数时,我总是收到失败。

任何人都知道如何解决这个问题?

谢谢!

0 投票
1 回答
4094 浏览

php - 在 PHP 中设置 TCP 侦听器

我们目前正在使用一个系统,该系统通过 TCP 接收传入的 JSON 请求并使用 JSON 进行响应。目前我已经在 PHP 中设置了我的套接字:

这目前有效,服务器响应方法请求。但是,某些方法会像这样响应以确认调用,但稍后也会响应我所追求的结果。所以我真正需要的是一个 TCP 监听器。谁能告诉我如何像上面那样使用 fsock 编写 TCP 侦听器?

谢谢