首页 文章

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

提问于
浏览
0
//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的空字节数组? Also the socket_send function takes a string not an array.

2 回答

  • 0

    您需要生成一个包含零字节的字符串,然后您需要基本上将其相乘 .

    $zero = chr(0);
    $message = str_repeat($zero, 10240);
    

    你也可以使用 str_pad

    $message = str_pad('', 10240, chr(0));
    
  • 0

    什么协议要求你写10240空字节?

    无论如何,您调用的 Write() 重载只会写入该数组的前11个( pkgLen )个字节 . 所以你需要写11个零 .

    你可以做硬编码:

    $message = "\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0";
    

相关问题