gpt4 book ai didi

php - 尝试通过 Socket 向 ZVT 终端发送数据

转载 作者:行者123 更新时间:2023-12-03 11:58:09 25 4
gpt4 key购买 nike

如何将数据发送到监听终端?!?! (见任务)

塞纳里奥是:

我有一个正在监听 IP:PORT 的终端,例如192.168.1.100:12345

我创建一个套接字并像这样连接

$socket = socket_create(AF_INET, SOCK_STREAM, 0);
$result = socket_connect($socket, $host, $port);

现在我想将数据写入套接字。我的数据看起来像:
0x06 0x01 0x07 0x04 0x00 0x00 0x00 0x00 0x00 0x69

实际上终端应该显示 0.69 cent在显示器中。但我需要在 0x69 前面发送数据也。

我正在发送数据
socket_write($socket, $data, strlen($data));

我读过一些关于 php pack()功能并尝试了这个...
$data = pack( "C", "\x06\x01\x07\x04\x00\x00\x00\x00\x00\x69" );

我也尝试过的是
$data = pack("c","\x06\x01\x07\x04\x00\x00\x00\x00\x00\x69");//nothing happens
$data = "0x06 0x01 0x07 0x04 0x00 0x00 0x00 0x00 0x00 0x69";//nothing happens

但这不起作用。

我的 friend 用 C++ 编写了一个程序,它很容易工作。

任务

任务是以 8 位格式和十六进制发送数据。

编辑

C++ Code

最佳答案

您的授权命令(06 01):0x06 0x01 0x07 0x04 0x00 0x00 0x00 0x00 0x00 0x69

完全正确,您的消息长度为 7 个字节(0x07),数量(数据 block 字段:0x04)是 6 个字节的 BCD,以欧分形式打包,带有前导零(0x00 0x00 0x00 0x00 0x00 0x69)。一个字节用两个 HEX 字符表示,因此传输的金额为:69 Cent。与金额显示格式有关的一切都是终端本身的配置问题。

请参阅此处获取 zvt 协议(protocol)的免费版本

https://www.terminalhersteller.de/pdf/PA00P015_13.08_en.pdf

您可以使用许多编程语言来创建到终端的套接字连接,但是 ZVT 协议(protocol)的“完整”实现并不多……您需要这些实现来完成通信。我推荐 C#、Java 或 Node.js。开始通信时调用注册命令(06 00)也是常识,这包括配置字节!

关于php - 尝试通过 Socket 向 ZVT 终端发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25157612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com