Python与CSharp之间内存共享互传信息
C#写入字符串到共享内存
try
{
long t = 1 << 10 << 10;
var mmf = MemoryMappedFile.CreateOrOpen("test1", t, MemoryMappedFileAccess.ReadWrite);
var viewAccessor = mmf.CreateViewAccessor(0, t);
string s = "123";
viewAccessor.Write(0, s.Length); ;
viewAccessor.WriteArray<byte>(0, System.Text.Encoding.Default.GetBytes(s), 0, s.Length);
// MessageBox.Show("write ok");
}
catch (System.Exception s)
{
MessageBox.Show(s.Message);
}
Python从共享内存中读取
import mmap
str = '123'
byte = str.encode()
SHMEMSIZE = len(str)
file_name = 'test1'
print(SHMEMSIZE)
# python读取共享内存
shmem = mmap.mmap(0, SHMEMSIZE, file_name, mmap.ACCESS_READ)
print(shmem.read(SHMEMSIZE).decode('ASCII'))
shmem.close()
二
Python写入字符串到共享内存
import mmap
str = '123456'
byte = str.encode(encoding='UTF-8')
SHMEMSIZE = len(str)
file_name = 'global_share_memory'
print(file_name)
# python写入共享内存
shmem = mmap.mmap(0, SHMEMSIZE, file_name, mmap.ACCESS_WRITE)
shmem.write(byte)
while True:
pass
C#从共享内存中读取
long capacity = 6;
var mmf = MemoryMappedFile.OpenExisting("global_share_memory");
MemoryMappedViewAccessor viewAccessor = mmf.CreateViewAccessor(0, capacity);
char[] charsInMMf = new char[6];
byte test = viewAccessor.ReadByte(0);
byte test2 = viewAccessor.ReadByte(1);
byte test3 = viewAccessor.ReadByte(2);
byte test4 = viewAccessor.ReadByte(3);
Python与CSharp之间内存共享互传信息的更多相关文章
- 【转】windows和linux间共享互传文件
原文:http://blog.guorunmin.cn/2015/09/16/windows%E5%92%8Clinux%E9%97%B4%E5%85%B1%E4%BA%AB%E4%BA%92%E4% ...
- python中隐式的内存共享
在python中,基本上使用的是引用,那么就会造成一个隐式的内存共享,特别是在容器对象中,例如list,dictionary 对于不可变对象,是不会造成隐式的内存共享情况,如下所示: >> ...
- Ubuntu 和 Windows 之间进行远程访问和文件互传
1. 利用 Ubuntu 自带软件 Remmina 对另一台 Ubuntu 电脑进行远程访问(同一局域网下) 假设要用 A 电脑来控制 B 电脑,首先需要在 B 电脑上进行桌面共享设置 . 然后打 ...
- 孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化
孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...
- 使用scp在windows和Linux之间互传文件
转自:http://yangzhongfei.blog.163.com/blog/static/4610987520103141050918/ 为了进行系统维护操作,有时需要再windows和linu ...
- Linux_window与linux之间文件互传,上传下载
window与linux之间文件互传 运行环境:Centos os7 + win8.1 +putty putty:是一个Telnet,ssh,rlogin,纯tcp以及串行接口连接软件,由于linux ...
- 管道(pipe),进程之间的共享内存(Manager,Value)
1 管道(了解) from multiprocessing import Pipe con1,con2 = Pipe() 管道是不安全的. 管道是用于多进程之间通信的一种方式. 如果在单进程中使用管道 ...
- 如何利用Xshell在windows与linux之间互传文件
如何利用Xshell在windows与linux之间互传文件 第一步: 安装Xshell. 第二步: 打开Xshell,若出现默认的对话框,则选择关闭,因为下面将演示如何将本地文件传输至远程linux ...
- python 中的Array,Value及内存共享
官网文档的例子 from multiprocessing import Process, Value, Array def f(n, a): n.value = 3.1415927 for i in ...
- 使用lrzsz在windows、Linux之间互传文件
使用xshell自带的传输太慢 使用lrzsz进行文件互传: xshell远程linux 安装工具:yum install -y lrzsz,检查是否安装成功:rpm -qa |grep lrzsz ...
随机推荐
- 安装Windows Server 2022 - 初学者系列 - 学习者系列文章
这天要写一个关于系统部署的系列文章,涉及到Windows Server 2022操作系统的安装,所以就写了此文.Windows系列的操作系统安装,以前的博文中都有介绍,这里再次做一个安装描述吧.需要的 ...
- 新开一个系列,c++刷题集
点开我的博客,然后选择 c++ csp 备考 标签进行筛选即可 工具采用devcpp 5.11 github地址:https://github.com/Dou-fugan/Basic-algorith ...
- Ribbon负载均衡 (源码分析)
Ribbon负载均衡 SpringCloud已经删除了ribbon组件,所以需要手动导入依赖.(要学是因为很多项目业务已经使用了ribbon) 服务拉取的时候添加了@LoadBalanced注解,实现 ...
- idea插件Jclasslib---查看字节码指令
1 简介 学习一个jvm的知识的时候总要去研究一些字节码指令,但是每一次都把class文件打开到jclasslib里面很是麻烦,后来google发现有人已经写好了这个插件Jclasslib.我们通过J ...
- IOS12.0 + Xcode 12.0 错误:Building for iOS Simulator, but the linked and embedded framework 'XXX.framework' was built for iOS + iOS Simulator
环境:IOS12.0 + Xcode 12.0 问题描述:运行编译 Building for iOS Simulator, but the linked and embedded framework ...
- Python接口自动化之pymysql数据库操作
一.pymysql介绍及安装 01 pymysql介绍 MySQL应该说是如今使用最为普遍的数据库了,没有之一,而Python作为最为流行的语言之一,自然少不了与MySQL打交道,其中PyMySQL就 ...
- angular 封装http请求、解决跨域问题
第一部分:封装http请求 1.定义 ResultDataModel export interface ResultDataModel<T> { success: boolean; err ...
- 22 备份整合方案应用:Proxmox BS
22 备份整合方案应用:Proxmox BS 22.1 深度整合备份解决方案 在PVE所内建的备份功能,当我们备份至本机路径(Directory).NFS/CIFS挂接的网路储存装置时,它每一次所做的 ...
- 遗忘的pawn 创建
默认加载 pawn::staticclass; ConstructorHelpers::FClassFinder<>Pawnpath(TEXT("_C")); 然后是的 ...
- JavaScript表单form
form表单实例 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"& ...