send() 函数返回的字节数多于 C++ 所需的字节数

2024-03-16

我正在做一个套接字程序,在我的服务器与设备连接后,我试图向他发送一条消息。但 send() 函数返回的字节数大于数组中存储的字节数。并且消息没有被发送。

这是我的代码:

StartSendingMessages()
{
    int retorno;
    CString TextRetorno;

    HEX_bufferMessage = new CHAR[7]; // there are seven bytes

    // specifies the state
    HEX_bufferMessage[0] = 0xF0;
    HEX_bufferMessage[1] = 0x15;
    HEX_bufferMessage[2] = 0x31;
    HEX_bufferMessage[3] = 0x04;
    HEX_bufferMessage[4] = 0x02; // green
    HEX_bufferMessage[5] = 0x0E; // C1
    HEX_bufferMessage[6] = 0xF7;

    retorno = send(sckSloMo, HEX_bufferMessage, sizeof(HEX_bufferMessage), 0); 

    TextRetorno.Format("%d", retorno); // retorno = 8
    AfxMessageBox("Bytes enviados: " + TextRetorno);

    if (retorno == SOCKET_ERROR)
    {
        AfxMessageBox("Error Send!!");
        return;
    }
    else if(retorno != 0)
    {
        AfxMessageBox("Send() OK !!");
    }
}

有谁知道为什么会发生这种情况?


你不是这个意思sizeof(HEX_bufferMessage)。的类型HEX_bufferMessage是[大概]char*,以及a的大小char*在您的 [64 位] 系统上是 8 个字节。

传号码7相反,最好使用常量,并且如果值7确实是固定的。

const int BUF_SIZE = 7;
char HEX_bufferMessage[BUF_SIZE];

// ...

retorno = send(sckSloMo, &HEX_bufferMessage[0], BUF_SIZE, 0); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

send() 函数返回的字节数多于 C++ 所需的字节数 的相关文章

  • EventHandler 应该始终用于事件吗?

    我一直在愉快地使用自定义委托类型和通用编写事件Action委托类型 没有真正考虑我在做什么 我有一些很好的扩展助手Action and EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的委托类型 但除此之外 除了惯例
  • libtool 在 Ubuntu 13.04 上构建 thrift 0.9.1 时出错

    在 Ubuntu 13 04 上构建 thrift 0 9 1 支持 C C java C perl python 时出现此错误 configure 不带任何选项运行 make 不带任何选项运行 Making all in test mak
  • C++中的类要具备什么条件才能成为容器?

    我是 C 编程新手 偶然发现了这个术语containers举例如下vector deque map etc 一个企业的最低要求应该是什么class应该满足被称为container in C 我将从 范围 这个概念开始 Range 只有两个方
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • 类中是否可以有虚拟类声明?

    我正在为个人项目中框架的各个组件设置一个接口 我突然想到了一些我认为可能对接口有用的东西 我的问题是这是否可能 class a public virtual class test 0 class b public a public clas
  • 如何调试在发布版本中优化的变量

    我用的是VS2010 我的调试版本工作正常 但我的发布版本不断崩溃 因此 在发布版本模式下 我右键单击该项目 选择 调试 然后选择 启动新实例 此时我看到我声明的一个数组 int ma 4 1 2 8 4 永远不会被初始化 关于可能发生的事
  • 检测 TextBox 中的 Tab 键按下

    I am trying to detect the Tab key press in a TextBox I know that the Tab key does not trigger the KeyDown KeyUp or the K
  • 无法获取本地或参数的值,因为它在此指令指针处不可用,可能是因为它已被优化掉

    Visual Studio 2010 会删除 没有其他词 不安全块中函数参数之一中的数据 什么可能导致此错误 调试器显示以下消息 Cannot obtain value of local or argument as it is not a
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • 如何在 EF Core 2.1 中定义外键关系

    我的 DAL 使用 EF Core 2 1 这就是我的模型的样子 一名用户只能拥有一种角色 Role entity kind of master public class Role public int RoleId get set pub
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 不使用放置 new 返回的指针时的 C++ 严格别名

    这可能会导致未定义的行为吗 uint8 t storage 4 We assume storage is properly aligned here int32 t intPtr new void storage int32 t 4 I k
  • 时间:2019-03-17 标签:c#TimerStopConfusion

    我想通过单击按钮时更改文本颜色来将文本框文本设置为 闪烁 我可以让文本按照我想要的方式闪烁 但我希望它在闪烁几次后停止 我不知道如何在计时器触发几次后让它停止 这是我的代码 public Form1 InitializeComponent
  • 在二进制数据文件的标头中放入什么

    我有一个模拟 可以读取我们创建的大型二进制数据文件 10 到 100 GB 出于速度原因 我们使用二进制 这些文件依赖于系统 是从我们运行的每个系统上的文本文件转换而来的 所以我不关心可移植性 当前的文件是 POD 结构的许多实例 使用 f
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe

随机推荐

  • 使用 FOSRestBundle 返回响应时无法找到模板

    我正在使用 FOS Rest Bundle 构建 Api 问题是每次我尝试返回任何内容时都会收到错误消息 无法找到模板 我真的不想渲染模板 而是序列化我拥有的实体 这是我的代码 路由 yml acme api register patter
  • 将 2 个数字相乘,然后求和

    我很难尝试做一些看起来应该很容易做的事情 我基本上想将一个节点中的 2 个数字相乘 然后将所有节点的这些数字相加 这是我尝试过的 XSLT 代码
  • 使用 ncurses 时未定义对“stdscr”的引用

    我正在尝试在 Ubuntu 11 10 中编译我的代码并收到这些错误等等 到目前为止 通过谷歌搜索我认为这是一个链接错误 具体来说 有人建议确保您拥有正确的标头并链接 lncurses 库 我已经这么做了 我仍然收到此错误 我还读到也许我应
  • git reset --soft 的实际用途?

    我使用 git 已经有一个多月了 事实上 我昨天才第一次使用重置 但软重置对我来说仍然没有多大意义 我知道我可以使用软重置来编辑提交 而无需更改索引或工作目录 就像我所做的那样git commit amend 这两个命令真的一样吗 rese
  • C++20 范围和排序

    我正在处理 C 20 的最后 4 个大版本 试图学习新的主要功能 尝试来自网络的一些与范围相关的代码 我写了 std vector ints 6 5 2 8 auto even int i return 0 i 2 ranges auto
  • 在 MongoDB 中的对象中插入数组

    我是 MongoDB 的新手 我想像这样插入 mongodb 数据 但我不知道如何做 image cab tags NNP 0 NN 1 image castle tags NNP 2 NN 1 我的代码是 BasicDBObject ob
  • 登录管理后,Django 开发服务器停止

    我已经在 python 3 7 中安装了 django 3 0 并启动了一个基本的 django 项目 我创建了一个超级用户并使用运行开发服务器python manage py runserver 当我去localhost 8000 adm
  • 如何使用 R 将日期时间格式转换为“ddmmyyyy”?

    我的约会dataframe看起来像这样 Date Values 1JAN2018 80 23DEC2019 21 3 我怎样才能将其格式化为ddmmyyyy日期以便我可以使用ggplot创建时间序列图 我做了什么 Date lt as Da
  • 处理父小部件中的点击事件

    在我的应用程序树中 我有两个小部件 GestureDetector onTap gt print Outer child IconButton icon Icon Icons add onPressed gt print Inner 他们都
  • 将 OnClickListener 关闭然后再打开

    我在用户单击按钮后将 OnClickListener 设置为关闭 confirm setOnClickListener null 这使得该按钮不可单击 但我希望在用户单击另一个按钮后它可以单击 我怎样才能做到这一点 Just set con
  • 枚举所有正在运行的数据库

    我正在编写一个小型数据库管理程序 如果您提供数据库 它可以正常工作 但如果您不知道安装了哪个数据库 则效果不佳 如何枚举所有正在运行的数据库 例如程序的输出 Port xy MS SQL Server 2005 Port ab Postgr
  • 没有子元素的 Javascript 元素 html [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在我的 javascript 代码中 我需要获取元素的定义 但没有其内容 既不是文本也不是子元素 例如 为了 div c
  • 如何将十进制基数 (10) 转换为负二进制基数 (-2)?

    我想编写一个程序将十进制转换为负二进制 我不知道如何从十进制转换为负二进制 我不知道如何找到规则以及它是如何运作的 例子 7 base10 gt 11011 base 2 我只知道是这样7 2 0 1 2 1 1 2 2 0 2 3 1 2
  • 如果进程附加了 CLR 调试器,.NET 代码运行速度是否会变慢?

    正如标题所说 我正在运行一个很长的程序 并且它附加了 CLR 调试器 因此我可以捕获和检查异常 我获得的性能是否与不使用调试器运行它相当 或者我是否付出了严重的 2 10 倍或更多 代价 最重要的是 工具 选项 调试 常规 抑制模块加载的
  • Java 中 if/else 与 switch 语句的相对性能差异是什么?

    担心我的 Web 应用程序的性能 我想知道 if else 或 switch 语句中哪一个在性能方面更好 我完全同意过早优化是应该避免的观点 但 Java VM 确实有可用于 switch 的特殊字节码 See WM Spec http d
  • 如何在flutter中使用injectable和get_it的共享首选项?

    我在flutter中使用injectable和get it包 我有一个共同的偏好类别 LazySingleton class SharedPref final String token token SharedPreferences pre
  • 使用 TextMode Number 回发后,TextBox 失去值

    遇到奇怪的问题 我有一个简单的页面TextBox
  • 如何使用 ScalaPB 序列化/反序列化使用“oneof”的 protobuf 消息?

    我正在使用 ScalaPB 编译 Scala 案例类来序列化我的 protobuf 消息 我有一个 proto包含以下消息的文件 message WrapperMessage oneof msg Login login 1 Register
  • AutoMapper 地图子属性也定义了地图

    我有以下域对象 public class DomainClass public int Id get set public string A get set public string B get set 我有以下两个要映射到的对象 pub
  • send() 函数返回的字节数多于 C++ 所需的字节数

    我正在做一个套接字程序 在我的服务器与设备连接后 我试图向他发送一条消息 但 send 函数返回的字节数大于数组中存储的字节数 并且消息没有被发送 这是我的代码 StartSendingMessages int retorno CStrin