Projetos em C

1. Cliente e servidor TCP simples (chat 1:1)

📌 Um lado envia e o outro recebe mensagens (como um mini netcat).

  • Usa: socket(), bind(), listen(), accept(), connect(), send(), recv().

  • Nível: iniciante.

  • Dá pra testar em localhost.

💡 Extra: Adiciona múltiplos clientes usando fork() ou select() depois.


2. Cliente e servidor UDP (ping simples)

📌 Envia um pacote e espera a resposta.

  • Bom pra entender a diferença entre TCP e UDP (sem conexão, sem garantia de entrega).

  • Pode simular perda de pacotes e retransmissões.


3. Sniffer de pacotes (tipo mini Wireshark)

📌 Usa raw sockets pra capturar tráfego de rede.

  • Pode filtrar pacotes TCP, UDP, ICMP e exibir cabeçalhos.

  • Nível: intermediário.

  • Permite entender como os protocolos são estruturados (camada 3 e 4).


4. Port scanner simples (tipo mini Nmap)

📌 Tenta conectar em várias portas de um IP e diz quais estão abertas.

  • Usa: connect() com timeout em portas TCP.

  • Pode fazer versão TCP ou até UDP.


5. Servidor HTTP básico (mini Apache)

📌 Um servidor que responde a requisições HTTP simples (GET /).

  • Dá pra servir arquivos .html e imagens.

  • Aprende a trabalhar com strings, cabeçalhos HTTP, e parsing de requisições.


6. Ferramenta de download (tipo mini wget)

📌 Dá uma URL e ele conecta, faz o GET e salva o conteúdo.

  • Aprende a parsear URLs, resolver DNS (getaddrinfo()), lidar com protocolo HTTP.


7. Ferramenta de transferência de arquivos entre dois PCs

📌 Cliente envia um arquivo, servidor salva no disco.

  • Usa TCP e fread/fwrite pra manipular arquivos.

  • Ideal pra treinar envio em blocos, confirmação, e controle de erros.

Last updated