Este repositório contém duas implementações de chat cliente-servidor usando Node.js para demonstrar as diferenças fundamentais entre os protocolos TCP e UDP.
- TCP (Transmission Control Protocol) – Comunicação confiável, orientada à conexão e com garantia de entrega.
- UDP (User Datagram Protocol) – Comunicação rápida, sem conexão (envio de datagramas) e sem garantia de entrega.
.
├── TCP/
│ ├── client.js
│ ├── server.js
│ ├── package.json
│ └── package-lock.json
└── UDP/
│ ├── client.js
│ ├── server.js
│ ├── package.json
│ └── package-lock.json
├── readme.md
│
Antes de executar o projeto, certifique-se de ter instalado:
Primeiro, clone o repositório para a sua máquina local e acesse a pasta do projeto:
git clone https://github.com/arielcBR/aplicacao-socket-tcp-nodejs.gitNavegue até a pasta do projeto clonado:
cd aplicacao-socket-tcp-nodejsO código TCP está na pasta TCP, navegue até a pasta TCP e instale as dependências:
cd TCPEm um terminal, execute o servidor TCP:
node server.jsO servidor estará ouvindo na porta 8124
Em outro terminal, execute o cliente TCP:
node client.jsAgorá será possível a comunicação entre cliente e servidor através dos terminais, funcionando como um chat.
O código UDP está na pasta UDP.
Navegue até a pasta UDP
Se estava na raiz, use:
cd UDPCaso esteja na pasta TCP retorne para a raíz com o comando:
cd ..E posteriormente acesse a pasta UDP
se estava na raiz, use:
cd UDPEm um terminal, execute o servidor UDP:
node server.jsO servidor estará ouvindo na porta 41234
⚠️ Atenção: inicie o servidor antes do cliente para que ele já tenha realizado o bind na porta 41234. Se o servidor não tiver feito o bind, ele não poderá receber as mensagens enviadas pelo cliente.
Em outro terminal, execute o cliente UDP:
node client.jsO cliente enviará pacotes para o servidor, que responderá com um eco da mensagem enviada.
📝 Observações Portas: Certifique-se de que as portas utilizadas pelos servidores (TCP: 8124, UDP: 41234) estejam livres em sua máquina. Múltiplos Clientes: Você pode abrir múltiplas instâncias do client.js (especialmente o TCP) em diferentes terminais para testar a comunicação simultânea. Finalidade: Este projeto é destinado a fins educativos.
👨💻 Autor
Ariel Adelson Campos Luiz
Instituto Federal Sul-rio-grandense (IFSul) – Campus Sapucaia do Sul