【问题标题】:shared memory between c++ and pythonc++和python之间的共享内存
【发布时间】:2021-06-01 22:23:49
【问题描述】:

我正在尝试使用套接字连接 c++(服务器)和 python(客户端),并希望使用共享内存发送共享数据以及消息发送。 c++创建的CSV文件格式的数据。

【问题讨论】:

  • 不清楚你有什么问题。
  • 您确定共享内存是您想要的吗?也许你应该看看序列化?
  • 你注意到你的问题有答案了吗?如果您提供一些反馈,这将是惯例,我们将不胜感激。

标签: python c++ sockets shared-memory


【解决方案1】:

您可以使用具有 C/C++ 绑定的 Redis 非常简单、快速甚至跨网络完成此操作。 Python、Ruby、bash 等等。它是一个非常快速、轻量级的“内存中”数据结构服务器,可以为整数、字符串、列表、队列、FIFO、集合、原子整数、哈希、有序集合等提供服务。它还可以在 Linuxma​​cOSWindows 上以客户端或服务器形式运行,而无需担心它们之间共享内存和套接字的差异平台。

bash CLI(命令行界面)使调试代码中发生的事情以及注入测试数据变得非常简单。

因此,例如,您可以使用 Redis hash 来表示您的数据 - 我只是在这里使用终端连接到本地主机,但它可以在任何机器上:

redis-cli -h 127.0.0.1

127.0.0.1:6379> hmset day:1 1 s 2 e 3 i 4 r
OK
127.0.0.1:6379> hmset day:5 1 e 2 i 3 r 4 r
OK
127.0.0.1:6379> hgetall day:5
1) "1"
2) "e"
3) "2"
4) "i"
5) "3"
6) "r"
7) "4"
8) "r"
127.0.0.1:6379> hmget day:5 4
1) "r"

非交互版:

redis-cli --raw hmget day:5 2
i

使用 Python 检索 day1 值:

#!/usr/bin/env python3

import redis

# Redis connection
r = redis.Redis(host='localhost')

# Retrieve our hash from Redis
day1 = r.hgetall("day:1")

print(day1)

样本输出

{b'1': b's', b'2': b'e', b'3': b'i', b'4': b'r'}

C/C++ 和 Python 绑定示例here

【讨论】:

    【解决方案2】:

    如果您使用的是 Windows,则可以尝试 Memurai。这是一个非常快速的数据存储。它就像一个魅力

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 2023-03-31
      • 1970-01-01
      • 2012-07-03
      • 2012-07-06
      相关资源
      最近更新 更多