Junior
Qual é a diferença entre os protocolos TCP e UDP?
sobes.tech IA
Resposta da IA
TCP: orientado à conexão, garante a entrega e a ordem dos pacotes. UDP: sem estabelecimento de conexão, não garante a entrega nem a ordem, mas é mais rápido.
Principais diferenças:
| Característica | TCP | UDP |
|---|---|---|
| Orientação | Com estabelecimento de conexão | Sem estabelecimento de conexão |
| Fiabilidade | Alta (garante a entrega) | Baixa (não garante a entrega) |
| Ordem | Garantido | Não garantido |
| Controle de fluxo | Sim | Não |
| Controle de erros | Sim (transmissão e ordem) | Não (soma de verificação básica) |
| Velocidade | Menor | Maior |
| Uso | HTTP, FTP, SSH | DNS, DHCP, jogos online, streaming |
Exemplo de código para enviar dados via TCP em Go:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // Estabelecer conexão TCP
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Garantir fechamento da conexão
_, err = conn.Write([]byte("Hello, TCP!")) // Enviar dados
if err != nil {
log.Fatal(err)
}
}
Exemplo de código para enviar dados via UDP em Go:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // Definir endereço UDP
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // Criar "conexão" UDP (sem sessão)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Fechar socket
_, err = conn.Write([]byte("Hello, UDP!")) // Enviar dados
if err != nil {
log.Fatal(err)
}
}