Empacotamento de Mensagens TLV e Resolução de Pacotes Colados em TCP com Go
Aprimorando a Estrutura de Requisições
Inicialmente, o servidor processava os dados brutos recebidos armazenando-os diretamente em um slice de bytes dentro da estrutura de requisição. Essa abordagem é limitada, pois não permite identificar o tipo ou o tamanho da mensagem de forma nativa. Para evoluir a arquitetura, abstraímos o campo de dados p ...
Publicado em 6-24 04:09
Programação de Redes Avançada: Processos, I/O Multiplexing e Sincronização
Gerenciamento de Procsesos em Redes
A criação de novos processos é um pilar fundamental para servidores que precisam lidar com múltiplas conexões simultâneas. No ambiente Unix-like, a função principle para essa tarefa é a fork().
#include <unistd.h>
// Retorna 0 no processo filho e o PID do filho no processo pai
// Retorna -1 em caso de ...
Publicado em 6-23 21:37
Guia Prático de Programação TCP Sockets no Linux
Fundamentos de TCP Sockets
No ambiente Linux, a comunicação em rede é abstraída através do conceito de Sockets. Um socket atua como um ponto final de comunicação entre dois processos. Como o Linux segue a filosofia de que "tudo é um arquivo", um socket é manipulado por meio de um descritor de arquivo, permitindo o uso de chamadas de s ...
Publicado em 6-21 22:11
Guia de Conceitos Essenciais para Sistemas Embarcados
Definindo segundos em um ano
#define HORAS_POR_DIA 24
#define MINUTOS_POR_HORA 60
#define SEGUNDOS_POR_MINUTO 60
#define SEGUNDOS_ANUAIS (365 * HORAS_POR_DIA * MINUTOS_POR_HORA * SEGUNDOS_POR_MINUTO)
volatile
Um especificador de tipo que informa ao compilador que o valor da variável pode mudar a qualquer momento, evitando otimizações. Usado p ...
Publicado em 5-30 13:07