Sobes.tech
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)
	}
}