Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como criar e utilizar NamedPipeServerStream no Windows

O NamedPipeServerStream é uma classe no .NET Framework que permite a comunicação entre processos (IPC) no ambiente Windows. Ele é usado para criar um servidor de pipe nomeado que pode aceitar conexões de clientes, facilitando a troca de dados entre diferentes processos. Este artigo técnico irá guiá-lo através dos passos para criar e utilizar NamedPipeServerStream no Windows, com exemplos práticos.


O que é NamedPipeServerStream?


NamedPipeServerStream é uma implementação de pipes nomeados no .NET, que permite a comunicação entre processos de forma eficiente. Pipes nomeados são um mecanismo de IPC que pode ser usado para enviar dados entre processos que estão sendo executados no mesmo computador ou em computadores diferentes na mesma rede.


Como criar um NamedPipeServerStream


Para criar um NamedPipeServerStream, você precisa seguir os seguintes passos:


1. Importar namespaces necessários: Você precisa importar os namespaces System.IO.Pipes e System.Text.


2. Criar uma instância de NamedPipeServerStream: Utilize o construtor para definir o nome do pipe e o modo de transmissão.


3. Esperar por uma conexão de cliente: Chame o método WaitForConnection para esperar por um cliente que se conecte ao pipe.


4. Ler e escrever dados: Utilize os métodos de leitura e escrita para trocar dados com o cliente.


5. Fechar o pipe: Após a comunicação, feche o pipe para liberar os recursos.


Exemplo Prático


Aqui está um exemplo completo de como criar um NamedPipeServerStream e se comunicar com um cliente:


Código do Servidor (NamedPipeServerStream)


using System;
using System.IO;
using System.IO.Pipes;
using System.Text;

class PipeServer
{
static void Main()
{
using (NamedPipeServerStream pipeServer = new NamedPipeServerStream("testpipe", PipeDirection.InOut))
{
Console.WriteLine("NamedPipeServerStream criado.");

// Esperar por uma conexão de cliente
Console.WriteLine("Aguardando conexão de cliente...");
pipeServer.WaitForConnection();
Console.WriteLine("Cliente conectado.");

try
{
// Ler dados do cliente
using (StreamReader reader = new StreamReader(pipeServer))
{
string message = reader.ReadLine();
Console.WriteLine("Recebido do cliente: " + message);
}

// Enviar resposta ao cliente
using (StreamWriter writer = new StreamWriter(pipeServer))
{
writer.AutoFlush = true;
writer.WriteLine("Mensagem recebida com sucesso.");
}
}
catch (IOException e)
{
Console.WriteLine("Erro: {0}", e.Message);
}
}
}
}

Código do Cliente (NamedPipeClientStream)


using System;
using System.IO;
using System.IO.Pipes;
using System.Text;

class PipeClient
{
static void Main()
{
using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "testpipe", PipeDirection.InOut))
{
Console.WriteLine("Tentando conectar ao servidor de pipe...");
pipeClient.Connect();
Console.WriteLine("Conectado ao servidor de pipe.");

using (StreamWriter writer = new StreamWriter(pipeClient))
{
writer.AutoFlush = true;
writer.WriteLine("Olá, servidor!");
}

using (StreamReader reader = new StreamReader(pipeClient))
{
string response = reader.ReadLine();
Console.WriteLine("Resposta do servidor: " + response);
}
}
}
}

Execução via CMD


Para compilar e executar esses exemplos, siga os passos abaixo:


1. Compilar o código:



  • Salve o código do servidor como PipeServer.cs.

  • Salve o código do cliente como PipeClient.cs.

  • Abra o Prompt de Comando e navegue até o diretório onde os arquivos estão salvos.

  • Compile os arquivos usando o comando:
     csc PipeServer.cs
    csc PipeClient.cs


2. Executar o servidor:



  • No Prompt de Comando, execute o servidor:
     PipeServer.exe


3. Executar o cliente:



  • Abra um novo Prompt de Comando e execute o cliente:
     PipeClient.exe


Conclusão


NamedPipeServerStream é uma ferramenta poderosa para comunicação entre processos no ambiente Windows. Com os exemplos fornecidos, você pode começar a implementar a comunicação IPC em suas aplicações .NET.


To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.