使用 C++ 序列化结构并通过套接字发送它

2023-12-10

我将通过 C++ 套接字发送一个结构。这是一个示例结构:

struct PIPPO
{
int x;
int y;
};

我使用它:

PIPPO test2;
test2.x = 10;
test2.y = 20;

我有上面的代码来序列化并通过套接字发送它。问题是,如果我尝试获取测试变量的十六进制值,我只能看到 0A,事实上在接收数据的另一台计算机上我无法将二进制数据转换回结构体。有人能帮我吗?

template <class T> void SerializeData(char *outputArray, T inputData)
{
memcpy(outputArray, &inputData, sizeof(inputData));
}

char *StrToHexStr(char *str)
{
    char *newstr = new char[(strlen(str)*2)+1];
    char *cpold = str;
    char *cpnew = newstr;

    while('\0' != *cpold) {
        sprintf(cpnew, "%02X", (char)(*cpold++));
        cpnew+=2;
    }
    *(cpnew) = '\0';
    return(newstr);
}

char *test = new char[sizeof(PIPPO)];

memcpy((void *)&test, (void *)&test2, sizeof(test2));

send(this->m_socket, test, strlen(test), 0);

通过线路发送原始二进制表示可能会导致问题,特别是当您拥有异构网络或应用程序时。看看protobuf这可能最适合这个。

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

使用 C++ 序列化结构并通过套接字发送它 的相关文章

  • 获取当前用户的 NetworkCredential (C#)

    我正在尝试从控制台应用程序调用 Web 服务 并且我需要向客户端提供System Net NetworkCredential object 是否有可能创建一个NetworkCredential启动应用程序的用户的对象而不提示输入用户名 密码
  • gets 和 scanf 有什么区别?

    如果代码是 scanf s n message vs gets message 有什么区别 似乎两者都获取消息的输入 基本区别 参考您的特定场景 scanf 遇到一个时结束接受输入whitespace newline or EOF gets
  • 以编程方式更改 Excel 中的字体(Trebuchet MS、Calibari)C#

    我目前正在使用一个 C 应用程序 该应用程序有一个将生成 Excel 文件的类 一切都很顺利 Excel 工作表上填充的数据具有 Times New Roman 字体 我想将其更改为其他字体 Calibari 我怎样才能以编程方式做到这一点
  • 运行时两个注册之间的简单注入器基于动态上下文的注入

    我有一个使用 Simple Injector 进行命令处理程序注册的中介应用程序 并且注入和处理程序均已设置并完美运行 class DoWashingCommandHandler IRequestHandler
  • 指向指针的指针和指向二维数组的指针之间的区别

    如果我有一个二维数组 B 定义为 int B 2 3 1 3 5 2 4 6 Is int p B与 一样int p 3 B int f B printf d f 1 gives 5作为输出 同时printf d f 给出 1 作为答案 为
  • Java写入ByteArrayOutputStream内存泄漏

    我正在将图像字节写入ByteArrayOutputStream然后通过套接字发送它 问题是 当我这样做时 ImageIO write image gif byteArray 内存增加很多 有点内存泄漏 我用这个发送 ImageIO writ
  • C# Visual Studio 动态代码片段

    我正在开发一个 WinForms 项目 每天都会执行一些重复性的任务 所以我认为创建代码片段 https msdn microsoft com en us library ms165394 v vs 110 aspx会帮助我 但它仅适用于固
  • 多态性中基类缺少虚拟析构函数 = 资源泄漏?

    我们知道 如果要多态地使用基类 则需要将基类的析构函数指定为 virtual 否则程序中可能会出现资源泄漏 因为只会调用基类析构函数 而不会调用派生对象析构函数 我们还知道构造函数 析构函数纯粹是初始化 未初始化构造 而operator n
  • 在 Windows 服务中使用 OleDb 从 Excel 读取数据?

    免责声明 我知道这是一种不好的做事方式 这是我们与客户的唯一选择 Problem 我们需要每隔 x 时间从 Excel 文件读取数据 数据通过第三方 Excel 插件不断变化 应用程序的环境是 Windows XP SP1 和 Net 2
  • 命令中带空格的 Windows C 系统调用

    我无法使用名称和参数中的空格进行系统调用 例如 system c program files something example exe c my files example txt 我尝试过各种我知道的方法来逃避 但没有任何效果 我努力了
  • 解析通过asp:FileUpload上传的XML文件

    我有一个场景 用户将上传 XML 文件 我想将该文件添加到数据库中的表中 不过 困难的部分是我需要解析文件 然后将一些信息添加到一些不同的表中 显示如何获取 XML 文件的每个示例都使用 URI 来获取文件 但是如何直接从数据库获取文件 或
  • WPF MVVM后台打印数据绑定问题

    我正在使用 wpf mvvm 开发一个销售点应用程序 在交易生命周期的许多阶段 都会在后台打印收据 我已经使用其他示例在后台生成和打印收据 我正在后台打印一个 UserControl 一切看起来都很棒 然后 我为该控件创建了 ViewMod
  • 剥离 OLE 标头信息 (MS Access / SQL Server)

    我有一个 C 应用程序需要支持二进制数据库内容 图像等 当使用 MS Access 或 MS SQL Server 时 此数据被包装在 OLE 对象内 如何去除此 OLE 标头信息 请注意 我不能只查找特定标签的开头 因为内容可以是 png
  • 链接错误:xxx 已在 *****.LIB 中定义:: 究竟出了什么问题?

    Problem 我正在尝试使用一个名为DCMTK http dicom offis de dcmtk它使用了一些其他外部库 zlib libtiff libpng libxml2 libiconv 我已经从同一网站下载了这些外部库 LIB
  • 64 位随机生成器种子

    我目前正在运行一个具有 8 个以上管道 线程 的多线程模拟应用程序 这些管道运行非常复杂的代码 该代码取决于种子生成的随机序列 然后该序列被归结为单个 0 1 我希望在将种子从主线程传递到处理管道后 这种 随机处理 具有 100 的确定性
  • 具有可导出私钥的证书的“错误密钥”例外

    我正在尝试使用非对称加密来加密然后解密文件 我已经使用 makecert 创建了一个测试证书并将其安装到我的个人本地计算机存储中 将来我必须在多个服务器上安装此证书 这就是为什么我使用 pe 标志创建它 即使用可导出的私钥 证书已成功创建并
  • 如何从与 C# lambda 集成(而非代理集成)的 Amazon API 网关获取正确的 http 状态代码?

    我正在使用 C lambda 与 API 网关集成 我希望 API 网关返回正确的错误代码 例如 400 404 500 等 API网关模块tf文件 provider aws version lt 2 70 0 region var aws
  • Unity 错误“内部构建系统错误。后端退出,代码为 -1073740791。”摧毁/杀死了我的项目

    好吧 我可能在这里夸大了 但这是真的 当我开始打开它时 该项目由于错误 内部构建系统错误 后端退出 代码为 1073740791 而被破坏 应用程序 这个项目已经在Google Play上发布了 也许和设置有关 有人可以帮忙吗 完整错误 I
  • 有关 Endian 性和 .Net 的详细信息?

    我有几个关于字节顺序的问题 这些问题足够相关 我保证将它们作为一个问题提出 1 字节顺序是由 Net还是由硬件决定的 2 如果是由硬件决定的 我怎样才能在C 中找出硬件的字节序 3 字节序是否影响二进制交互 例如 OR AND OR 或移位
  • Json.net 将数字属性序列化为字符串

    我正在使用 JsonConvert SerializeObject 序列化模型对象 服务器期望所有字段都是字符串 我的模型对象具有数字属性和字符串属性 我无法向模型对象添加属性 有没有办法将所有属性值序列化为字符串 我必须只支持序列化 而不

随机推荐

  • 如何将 ruby​​gem 条件要求添加到 gem 规范中?

    仅当用户使用特定版本的 ruby 时才可以添加 gem 依赖项吗 背景 我正在研究一个项目的分支使用 Test Unit Autorunner 等 它们是 ruby 1 8 中标准库的一部分 但不是 1 9 1 中标准库的一部分 而是位于
  • python 列表,向列表添加一些内容会改变整个内容?

    所以我试图在Python中实现选择排序 并且我将每次迭代的结果附加到一个列表中以在最后打印 我的代码正确地对数字列表进行排序 但是当我将它附加到最后的同一个列表中时更改所有其他列表 def s sort numbers alist do a
  • 计算出勤时间差

    我有一个包含以下示例输出的表格 UserID Checktime CheckStatus 3175 2013 12 22 07 02 10 000 I 3175 2013 12 22 13 01 01 000 O 3175 2013 12
  • 针对特定图像的 CSS

    我正在寻找一种使用 CSS 定位特定图像的方法 如果可能的话 我正在运行一个 CMS 用户可以在其中上传图像并将其放在他们的页面上 我想要一种定位具有特定尺寸的图像的方法 所以问题是 你可以让 css 行针对具有特定尺寸规格的图像或对象吗
  • 使用 LocalStorage 保存和加载购物车

    我有以下代码 inames iqtyp iprice function bestel inames push document getElementById artikel innerHTML iqtyp push parseInt doc
  • C - strtok(...) 上出现意外的分段错误

    我正在使用库的 strtok 它似乎工作正常 直到结束条件 它导致分段错误和程序崩溃 API 声称 当找不到更多标记时 strtok 将输出 NULL 这意味着 我认为 您必须捕获此 NULL 才能终止使用 strtok 运行的任何循环 我
  • Android 来电事件

    我想创建一个 onCall 事件 我已经知道没有这样的方法 但基本上我想做的是 当接到来电时 弹出 Toast 或其他任何内容 任何类型的教程或示例代码都会有帮助 多谢 Use PhoneStateListener它已经重写了方法onCal
  • 如何确定 ARM 处理器是运行在通常的锁定“世界”中还是运行在 Secore“世界”中?

    例如 virt what显示您是否在硬件虚拟化 沙箱 内运行 如何检测您是否在 ARM TrustZone 沙箱中运行 信任区也许与你想象的不同 有一系列模式 从 可信功能的简单 API 到在每个世界中运行的 双操作系统 如果该问题有更多背
  • Objective-C:正确保留 3 位小数

    我正在尝试将浮点值降低到小数点后第三位 例如 值 2 56976 应为 2 569 而不是 2 570 我搜索并找到了这样的答案 向下取小数点后两位数 这样的答案并不准确 例如代码 double value double unsigned
  • 序列化静态类?

    如果我们序列化静态类会发生什么 如果我们序列化静态类 是否可以创建多个静态类实例 Serializable public static class MyClass public static MyClass public static bo
  • PHP 用 vars 替换字符串中的通配符(%s、%d)

    我有翻译功能t var function t word return this gt words word where this gt words是数组 this gt words array word1 gt word word2 gt
  • 如何打印一年中的所有星期(或一年中的第一个星期一)

    如何打印从星期一开始到星期日结束的所有周 如下所示 使用 Zend date 1 04 Jan 2010 10 Jan 2010 2 11 Jan 2010 17 Jan 2010 3 18 Jan 2010 24 Jan 2010 首先找
  • MYSQL 选择往复数据?

    我有一张桌子叫Follow 具有三个字段 Id 自动增量整数 用户ID 整数 关注 整数 如果我有这样的数据 ID UserId Following 1 2 3 2 3 2 3 2 5 4 2 6 5 3 5 我如何找到用户 2 的朋友 即
  • Pandas groupby 然后应用 to_dict('records')

    假设我有以下数据框 df pd DataFrame a 1 1 1 2 b a a b c d 1 2 3 4 我想以下面的句子结束 1 b a d 1 b a d 2 b b d 3 2 b c d 4 基本上 我想分组a对于我想应用的每
  • 将 UTC 日期转换为当前时区

    我必须将这种格式 2016 09 25 17 26 12 的 UTC 日期转换为 Android 的当前时区 我这样做了 SimpleDateFormat simpleDateFormat new SimpleDateFormat yyyy
  • 在 Objective C 中读取 .doc (MS Word) 文件?

    是否可以在 ObjC 中读取 doc MSWord 文件 或者 还有其他方法可以读取word文件吗 Thanks 这取决于您的平台 iPhone 的富文本功能与 OS X 截然不同 UIWebView可以打开它们在 iPhone 上 在 M
  • 如何使用带有工具提示的 ChartJs 或 D3 创建 RRG(相对旋转图)?

    我想使用 ChartJS 或 D3Js 使用任何开源创建 RRG 我已经尝试过这个 但无法绘制象限分叉示例https codesandbox io s chart js forked m1zug2 期望应该如下所示 在此输入图像描述 您可以
  • 无法从 Android 上创建的 ZIP 存档中提取文件(特定于设备/操作系统)

    我正在 Android 上使用如下代码创建存档 OutputStream os new FileOutputStream zipFile ZipOutputStream zos new ZipOutputStream new Buffere
  • 处理列表视图中用户控件的事件

    我有一个简单的用户控件 它会在单击按钮时引发事件 Public Class UcPaymentCheque Inherits System Web UI UserControl Public Event OnCancelClick Priv
  • 使用 C++ 序列化结构并通过套接字发送它

    我将通过 C 套接字发送一个结构 这是一个示例结构 struct PIPPO int x int y 我使用它 PIPPO test2 test2 x 10 test2 y 20 我有上面的代码来序列化并通过套接字发送它 问题是 如果我尝试