gpt4 book ai didi

c++ - 使用winsock vc++通过UDP发送数字数组

转载 作者:行者123 更新时间:2023-11-28 06:46:33 25 4
gpt4 key购买 nike

已解决:问题主要出在读取 UDP 数据包而不是数据传输的 simulink 模块组。

我正在尝试使用 winsock 从 c++ 程序中发送一个 20 字节的数值数组。我遇到的问题是数据打包,最后我希望数组中的每个数字都作为自己的字节输出,以便接收这些值的我的 simulink 模型不需要额外的处理脚本。

我的数组包含 14 个 bool 值 (0|1),然后是 6 个介于 -100 到 100 之间的值。它们报告 Controller 输入的状态。例如数组看起来像

    int array msgint[20] = [1,0,1,0,0,1,1,0,0,0,0,0,0,0,50,80,-90,40,90,-20];

我尝试过使用类型转换和发送多个字符串,但所有这些似乎只是重新排列我收到的乱码或导致套接字错误。目前我的 sendto 函数看起来像

        sendto(sd,message,80,0,(struct sockadd *) &server,server_length)

我知道这条线是有效的,因为数据包通过它只是没有像我希望的那样出现。在发送到中,消息是我试图创建的格式化字符串,以正确发送数组的所有内容。目前 is 是任意的并且意义不大,我基本上出于调试目的使用它。

最佳答案

你的出发点是错误的。网络通信应该从有线协议(protocol)的设计开始。

您将如何在网络上表示某些内容。二进制或文本。大多数“现代”协议(protocol)使用文本(json 或 xml)。几年前二进制很热门 (asn1/ber/der)。我建议 json

那么你将如何包装有效负载。你需要说'这是一组xxxs。现在这里是一组 yyyys'。我不知道你在做什么,所以很难说出你需要什么

关于c++ - 使用winsock vc++通过UDP发送数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891927/

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