问题标签 [php-socket]

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 投票
1 回答
3037 浏览

php - PHP套接字无法正常工作

我已经建立了一个服务器来监听通过我的 127.0.0.1 上的端口 1122 传入的请求这是我的代码:

这将监听客户端并返回 inout 的反转值。

该代码不会给出任何错误。事实上,当我转到 localhost/socket.php 时,它会继续加载。

现在我使用 terraterm 打开一个 telnet 连接并出现一个白页,如果我输入任何值或敲击任何键,连接将丢失。

知道为什么会这样吗?

亲切的问候

0 投票
2 回答
2362 浏览

php - 发送具有前导长度值的套接字数据

我想使用PHP Sockets通过网络连接将 JSON 消息从 PHP 脚本发送到 C# 应用程序。

通常,对于二进制协议,每条消息的前 4 个字节必须是一个整数,表示消息的长度(多少字节)。

在 C# 中,我在每条消息前面加上一个整数,表示消息的长度,如下所示:

据我了解,在 PHP 中,函数socket_send只接受字符串。那么,我怎样才能在 PHP 5.x 中做同样的前缀呢?

更新:我发布了一个后续问题,关于如何在从网络套接字接收到此类前缀数据时进行处理。

0 投票
1 回答
592 浏览

php - 处理具有前导长度值的套接字数据

这是关于如何处理从网络套接字接收到的前缀消息的后续问题。我尝试做的是:

  1. 读取前 4 个字节(即 $prefix,代表消息的长度)
  2. 检查 $prefix 是否真的有 4 个字节的大小以及它是否是一个整数
  3. 使用 $prefix 的长度读取完整的 $message
  4. 检查消息是否真的有 $prefix 字节的大小

到目前为止,我有以下两行代码:

我该如何进行上述检查?

一点旁注:通过网络套接字连接发送的所有数据都是UTF8,little-endian

0 投票
2 回答
7754 浏览

php - 无法连接到非阻塞套接字

这让我抓狂。我必须在 php 5.3 中创建一个非常简单的非阻塞套接字脚本,其中客户端连接到服务器,两者都使用非阻塞套接字。

我已经尝试过phpsocketdaemonphp 手册中的示例,但是在这两种情况下,当我尝试连接到服务器时,我都会收到以下错误:

我发生错误的客户端脚本:

我在 Win 7 上使用 Zend Server 5.6.0 SP1 的免费版本。

有谁知道如何解决这个问题或知道一个简单易懂的非阻塞套接字客户端/服务器脚本示例?

0 投票
1 回答
999 浏览

php - 参数 $tv_sec 或 $tv_usec 作为参数有什么作用?

我创建了一个简单的套接字 php 5.3 脚本,其中服务器脚本调用...

……循环。我正在使用非阻塞套接字,并且脚本在 Win7 机器上运行。

问题:此函数将脚本阻塞 2 秒。这意味着第 4 个参数 ($tv_sec) 确实会导致此块。

我的问题:$tv_secor 和有什么区别$tv_usec?做什么$tv_usec

php手册上的函数说明:

tv_sec: tv_sec 和 tv_usec 共同构成超时参数。超时是 socket_select() 返回之前经过的时间量的上限。tv_sec 可能为零,导致 socket_select() 立即返回。这对于轮询很有用。如果 tv_sec 为 NULL(无超时),socket_select() 可以无限期阻塞。

tv_usec:没有描述

0 投票
2 回答
1112 浏览

php - 将单个字节读取为无符号字节

我有一些 java 服务器,我正在尝试使用 php 脚本。

该格式提供了消息将采用无符号字节的字节数,然后是组成字符串的字节数。

这是我的评论功能

我不是真正的 php 人,更多的是 Java 人,所以我不确定我应该如何获得这个长度。

应@c0le2 的要求,我进行了以下编辑

这给出了以下错误

0 投票
1 回答
756 浏览

php - Web 套接字在 Firefox 12 中不起作用

Firefox 无法与位于 ws://192.168.0.155:5555/socket/server3.php 的服务器建立连接。

我的代码有问题吗??

0 投票
2 回答
20225 浏览

php - 如何在 Ubuntu 12.04 系统上的 PHP 5.3.10 中启用 Socket

我正在尝试在 linux 上的 PHP 中启用 Socket。我检查了 php.ini 但在该文件中没有得到以下行。

0 投票
2 回答
77 浏览

php - 套接字操作正在进行时我们如何写入一些数据

我是套接字的新手,我试图显示一些数据让用户告诉他等待,当套接字从服务器获取数据时,我也使用了 ob_flush、flush 和其他一些函数,但它们没有用,文本“正在加载....请稍候”仅在套接字关闭后出现,这是我的代码

如果您有任何解决方案,请帮助我。提前致谢

0 投票
1 回答
342 浏览

php - 无法通过 POST 通过 php 中的套接字连接发送对象数组

我对php完全陌生。我有 2 个页面让 A.php 和 B.php 想要在页面 A 运行页面 B。为此我创建了一个套接字连接并能够运行页面 B 但问题是当我发送对象数组时到页面 B.page A 只发送数组中列出的第一个对象,数组的其他值什么都没有这里是我在 A.php 中的一些代码

在 B.php

它只得到“消息”,因为它被列为数组中的第一个元素