Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php发送套接字的包字节长度_Php_Sockets - Fatal编程技术网

使用php发送套接字的包字节长度

使用php发送套接字的包字节长度,php,sockets,Php,Sockets,我需要从具有压缩的4字节整数的服务器解包一个响应,该整数指示响应的长度。我甚至不知道如何排除故障,因为我无法访问服务器。基本上,前导字节以某种方式关闭。下面首先给出一个字节0,然后在不准确的地方扭曲 $size_get=fgets($fp, 4); $size=unpack('N',$size_get); echo fgets($fp, $size[1]) . PHP_EOL; 答复部分: 我使用的是套接字连接,提供者要求我将消息的长度作为4字节整数打包到消息的开头。他们不熟悉php,所以st

我需要从具有压缩的4字节整数的服务器解包一个响应,该整数指示响应的长度。我甚至不知道如何排除故障,因为我无法访问服务器。基本上,前导字节以某种方式关闭。下面首先给出一个字节0,然后在不准确的地方扭曲

$size_get=fgets($fp, 4);
$size=unpack('N',$size_get);
echo fgets($fp, $size[1]) . PHP_EOL;
答复部分:

我使用的是套接字连接,提供者要求我将消息的长度作为4字节整数打包到消息的开头。他们不熟悉php,所以stackoverflow是我的首选。我搜索了一下,但什么也没找到

$message='{login:"username";pass:"password"}';
$length=pack("N",strlen($message));
fwrite($connection, $length.$message);

我正在使用stream\u socket\u client()。

什么都没有?你找到了吗?只需
pack()
而不是
unpack()
。解释一下你在哪一部分遇到了问题。我正在发送信息。我编辑了更多的信息,但我担心这会误导别人,这就是我最初没有这么做的原因。通常,更正现有代码比编造一些描述更容易。这代码是干什么的?我不是在编造什么。代码中唯一没有的是用户名和密码。这是我需要发送到套接字的消息。套接字要求我在消息的开头发送一个4字节长的整数,该整数携带消息的长度。我的意思是你正在寻找解决问题的代码,如果你展示你已有的代码,回答起来会更容易,否则我们将不得不根据你的描述猜测你当前的代码是如何工作的。我的问题是:您当前的代码做什么?