【问题标题】:What parameters do i have to send to a server?我必须将哪些参数发送到服务器?
【发布时间】:2013-07-14 12:20:34
【问题描述】:

我无法向服务器发送有效请求。 我有这个协议描述,但我不明白我必须用 socat 向服务器发送什么。

header 必须始终完整传输,即使命令没有 需要任何参数。

command 这是一个大小写很重要的单个字母(命令 'A' 和 'a' 例如,确实非常不同)。它的大小是 8 位。

param 1 这是一个 16 位数字参数。它是网络字节顺序和 主要用于指定 KNX 设备地址或数据长度。

我的问题来自param。我必须发送一个带有空值的 16 位数字参数。 我该怎么做?

【问题讨论】:

    标签: c unix tcp client knx


    【解决方案1】:

    通常,“空值”仅表示您发送零。

    如果服务器套接字是sock,那么这将发送 16 位:

    send (sock, "\0\0", 2, 0);
    

    【讨论】:

    • 实际上,因为字符串文字总是附加一个空字符,send(sock, "\0", 2, 0) 就足够了。但是将整个消息(标头、命令和参数)构建到单个缓冲区中然后send() 一次将整个内容构建起来不是更好吗?
    • @ElchononEdelson:是的,它会更好,但 OP 没有指定放什么,无论如何我想保持简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2011-02-04
    相关资源
    最近更新 更多