Теги с меткой " данные"

Обмен данными между приложениями

Взаимодействовать между различными приложениями можно по разному, например, через сокеты. Но в .NET 4.0 была введена новая функциональность, которая представляет собой создание участка общей разделяемой памяти для приложений.
Основной функционал новой технологии заключается в пространстве имен System.IO.MemoryMappedFiles
Создадим два консольных приложения, одно из которых будет посылать сообщение в общую память, а другое - считывать это сообщение.

pict1 300x91 Обмен данными между приложениями

Код первого приложения:

Imports System.IO.MemoryMappedFiles

Module Module1
     Sub Main()
        Console.WriteLine("Введите сообщение")
        'Ввод выражения для записи в общую память
        Dim message As Char() = Console.ReadLine()
        'Размер введенного сообщения
        Dim size As Integer = message.Length
         'Создание участка разделяемой памяти
        'Первый параметр - название участка, 
        'второй - длина участка памяти в байтах: тип char  занимает 2 байта 
        'плюс четыре байта для одного объекта типа Integer
        Dim sharedMemory As MemoryMappedFile = MemoryMappedFile.CreateOrOpen("MemoryFile", size * 2 + 4)
         'Создаем объект для записи в разделяемый участок памяти
        Using writer As MemoryMappedViewAccessor = sharedMemory.CreateViewAccessor(0, size * 2 + 4)
            'запись в разделяемую память
            'запись размера с нулевого байта в разделяемой памяти
            writer.Write(0, size)
            'запись сообщения с четвертого байта в разделяемой памяти
            writer.WriteArray(Of Char)(4, message, 0, message.Length)
        End Using       
         Console.WriteLine("Сообщение записано в разделяемую память")
        Console.WriteLine("Для выхода из программы нажмите любую клавишу")
        Console.ReadLine()
    End Sub
 End Module

Подробнее »

  Метки: ,
  AeroWhite
  Просмотров: 6 432
  Запись опубликована в 09:50