将 C# 代码转换为 PHP:创建空字节数组 php 并使用套接字发送


//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";

最新更新