栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python与C#之间内存共享互传信息

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python与C#之间内存共享互传信息

Python与CSharp之间内存共享互传信息 一 C#写入字符串到共享内存
try
{
    # 长度
    long t =100;
    # 创建内存块,test1,其他语言利用这个内存块名字就能找到内存块。
    var mmf = MemoryMappedFile.CreateOrOpen("test1", t, MemoryMappedFileAccess.ReadWrite);
    var viewAccessor = mmf.CreateViewAccessor(0, t);
    string s = "123";
    viewAccessor.Write(0, s.Length); ;
    viewAccessor.WriteArray(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);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号