//how to initialize byte[10240] in php
var svr = new TcpClient();
svr.Connect(127.0.0.1, 8081);
var ns = svr.GetStream();
var outputBuffer = new byte[10240];
var pkgLen = 11
ns.Write(outputBuffer, 0, pkgLen);
我有上面的 C# 代码,我正在尝试将代码转换为 PHP。 这是我的 php 代码:
<?php
/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$message = //empty array of byte
socket_send($socket, $message);
socket_close($socket)
?>
我的问题是如何在 php 中创建一个长度为 10240 的字节空数组?此外,socket_send函数采用字符串而不是数组。
你需要生成一个包含零字节的字符串,然后你需要基本上将其相乘。
$zero = chr(0);
$message = str_repeat($zero, 10240);
您也可以使用str_pad
:
$message = str_pad('', 10240, chr(0));
什么协议要求你写入 10240 个空字节?
无论如何,您调用的Write()
重载仅写入该数组的前 11 (pkgLen
( 个字节。所以你需要写 11 个零。
您可以进行硬编码:
$message = "x0x0x0x0x0x0x0x0x0x0x0";