php 长数据发送,php – 使用前导长度值发送套接字数据

本文探讨了如何在PHP5.x中使用PHPSockets发送带长度前缀的JSON消息,以便与C#应用程序进行通信。C#代码中,消息前四个字节包含消息长度。在PHP中,由于`socket_send`函数只接受字符串,作者询问如何实现类似的消息前缀功能。更新部分提到了后续问题,涉及如何从网络套接字接收此类带有前缀的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想使用

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

Usually, for binary protocols,每条消息的前4个字节必须是一个整数,表示消息的长度(多少字节).

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

byte[] msgBytes = UTF8Encoding.UTF8.GetBytes("A JSON msg");

byte[] prefixBytes = BitConverter.GetBytes(msgBytes.Length);

byte[] msgToSend = new byte[prefixBytes.Length + msgBytes.Length];

Buffer.BlockCopy(prefixBytes, 0, msgToSend, 0, prefixBytes.Length);

Buffer.BlockCopy(msgBytes, 0, msgToSend, prefixBytes.Length, msgBytes.Length);

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

更新:我发布了一个follow-up question,介绍如何从网络套接字接收此类前缀数据.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值