Visão geral

1. O que é programação Socket

  1. Significado literal de Socket
    A palavra socket originalmente significa tomada. Uma tomada cria uma conexão entre dois pontos, então na programação de redes ela representa um ponto de extremidade para comunicação em rede.
  2. Definição de programação Socket
    Troca de dados entre múltiplos hospedeiros usando os protocolos de rede TCP / UDP.
  3. Entendimento prático
    Escrever programas para que dois ou mais computadores troquem dados entre si. Um exemplo comum é uma ferramenta de bate‑papo em rede local.

Analogia: tomada = interface de rede; plugue = outro hospedeiro; encaixar o plugue = estabelecer conexão de rede.

Para facilitar o aprendizado, vamos estudar com um exemplo prático de implementação.

2. Projeto de uma ferramenta de bate‑papo simples

Modelo de arquitetura: Cliente‑Servidor (C/S)
  • Servidor (Server)
  1. Vincular‑se a uma porta local específica e manter‑se escutando requisições de rede
  2. Aguardar tentativas de conexão vindas de outros computadores
  3. Criar um canal de comunicação após detectar a conexão de um cliente
  • Cliente (Client)
    Enviar requisição de conexão informando o endereço IP e o número da porta do servidor
  • Objetivo da comunicação: Trocar mensagens de texto em tempo real entre dois computadores para implementar bate‑papo instantâneo

Fluxo de operação

  1. Servidor é iniciado → começa a escutar a porta
  2. Cliente é iniciado → conecta‑se ao IP e porta do servidor
  3. Com a conexão estabelecida, ambos os lados enviam e recebem mensagens

Abaixo um exemplo mínimo funcional

Servidor

// 1. Criar TcpListener para escutar IP e porta
TcpListener listener = new TcpListener(IPAddress.Any, 8899);
listener.Start();
// 2. Aguardar conexão do cliente
TcpClient client = await listener.AcceptTcpClientAsync();
// 3. Obter fluxo de rede para envio e recebimento de mensagens
NetworkStream stream = client.GetStream();
Code language: JavaScript (javascript)

Cliente

// Conectar ao IP e porta do servidor
TcpClient client = new TcpClient();
await client.ConnectAsync("192.168.1.100",8899);
NetworkStream stream = client.GetStream();Code language: JavaScript (javascript)

Visão geral

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *