ATPS - Sistema distribuido - Sistema ipc
Por: thiagosilgon • 9/4/2015 • Trabalho acadêmico • 300 Palavras (2 Páginas) • 543 Visualizações
Alguém me perguntou sobre um aplicativo de amostra de IPC ou Interprocess Communications usando arquivos de memória mapeada
O que é o IPC ou Interprocess Communications você pedir.
A maneira mais fácil de explicar é por dizer que permite que duas aplicações de falar um com o outro.
Os seguintes mecanismos IPC são suportados pelo Windows:
Prancheta, COM, copiar dados, DDE, mapeamento de arquivo, processadores de mensagens, tubulações, RPC, Windows Sockets
Clique no link abaixo para muito mais details. http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574%28v=vs.85%29.aspx#base.using_dde_for_ipc
Neste post eu vou estar explorando arquivos de memória mapeada usando o .NET C # para permitir que vários aplicativos para falar uns com os outros e passar informações.
No distante passado eu só tenho usado DDE para permitir que aplicativos de falar diretamente com o outro, e isso foi muito interessante para mim.
Neste exemplo eu vou estar usando arquivos de memória mapeada. Arquivos mapeados são bastante fáceis de implementar em .Net
Arquivos de memória mapeada são implementados usando o System.IO.MemoryMappedFiles Namespace
No exemplo abaixo, eu tenho dois métodos muito simples, CreateOrOpenMappedFile e ReadMemoryMappedFille
Observe abaixo que brevemente usar Mutex (de system.threading.Mutex) para capturar e segurar a linha que estamos usando para comunicações para o nosso arquivo de memória mapeada, em seguida, liberá-lo, garantindo que nós somos o único que pode alterá-lo nessa tempo.
Mais sobre Mutex aqui http://msdn.microsoft.com/en-us/library/system.threading.mutex%28v=vs.110%29.aspx
Eu criei um aplicativo e fez uma cópia chamando o APP1.EXE aplicações e app2.exe. Com base em uma opção de linha de comando que eu definir um para ser o remetente e um como receptor (na verdade, ambos atuam como emissor e receptor. Eu só precisava de uma maneira de especificar diferentes mensagens com base em como o aplicativo foi iniciado).
Ao usar arquivos de memória mapeada aplicações múltiplas podem ter acesso ao mesmo espaço de memória para compartilhar mensagens e dados, que normalmente não teriam acesso. Veja a imagem abaixo
[pic 1]
...