Como simular um cliente TCP/UDP usando o Netcat

María Hernández
· 3 min de leitura
Enviar por e-mail

Neste guia, apresentaremos o modelo cliente-servidor e mostraremos como simular um cliente TCP/UDP usando uma ferramenta útil chamada Netcat – para que você possa estabelecer uma conexão usando o terminal do seu computador.

Então, como funciona o modelo cliente-servidor na Internet das Coisas? O cliente é o dispositivo que inicia a comunicação. O servidor é Ubidots (ou qualquer outra conexão de servidor), que aceita conexões e gerencia as transferências de dados por meio de um protocolo simples como TCP ou UDP.

Para saber mais sobre como gerenciar seus dados com Ubidots , descubra como enviar dados para Ubidots via TCP ou UDP .

O que é Netcat?

O Netcat é um featured que lê e grava dados em conexões de rede, utilizando o protocolo TCP/IP. Projetado como uma ferramenta de "back-end" confiável, o Netcat pode ser usado diretamente com outros programas e scripts para enviar arquivos de um cliente para um servidor e vice-versa. Ao mesmo tempo, é uma ferramenta rica em recursos para depuração e exploração de rede, capaz de especificar parâmetros de rede e também de estabelecer uma conexão com um host remoto por meio de um túnel.

Embora o Netcat possa fazer muitas coisas, seu principal objetivo e suas funções mais desejáveis ​​são:

1. Crie um socket inicial para estabelecer uma conexão do servidor para o cliente.
2. Uma vez conectado, o Netcat irá gerar automaticamente um segundo socket para transmitir arquivos do servidor para o cliente e vice-versa. (Esta é a parte realmente interessante).

Segue abaixo um diagrama da arquitetura do protocolo de dados do Netcat:

Como você verá abaixo, essa solução simples também é extraordinariamente poderosa e flexível. Usaremos conexões locais por uma questão de simplicidade, embora, é claro, elas também possam ser usadas entre máquinas diferentes.

Sintaxe

nc [-opções] nome do host porta[s] [portas] nc -l -p porta [-opções] [nome do host] [porta]

Parâmetros básicos

  • -l: define o modo "escuta", aguardando conexões de entrada.
  • -p: porta local.
  • -u: define o modo UDP.

Teste seus conhecimentos sobre o Netcat como cliente-servidor

Abra dois terminais de computador – o primeiro funcionará como servidor e o segundo como cliente.

Cliente TCP

Com o Netcat, seu PC pode ser transformado em um servidor. Você precisará começar configurando um servidor que escute na porta 2399 :

$ nc -l 2399

Também podemos usar o servidor para conectar à porta recentemente aberta ( 2399 ) a partir do do cliente :

$ nc localhost 2399

Como você pode ver na imagem abaixo, a conexão foi estabelecida:

Com a conexão estabelecida, você agora pode escrever para o servidor a partir do cliente :

$ nc localhost 2399 Olá Servidor

No terminal onde o servidor está em execução, seus arquivos de texto aparecerão sem problemas.

$ nc -l 2399 Olá Servidor

Cliente UDP

Por padrão, o Netcat usa o TCP para se comunicar, mas também pode usar UDP com a -u .

Como mencionado anteriormente, o Netcat permite transformar seu PC em um servidor. Aqui, vamos estabelecer a conexão entre o servidor e o cliente usando UDP.

No do servidor , execute o comando abaixo. Como você pode ver, basta adicionar -u ao comando para estabelecer a UDP :

$ nc -u -l 2399

Após iniciar o servidor, estabeleça a conexão com o cliente :

$ nc -u localhost 2399

Agora o cliente e o servidor estão usando UDP para se comunicar. Você pode verificar a comunicação usando o comando netstat em um novo (terceiro) terminal de computador.

$ netstat | grep 2399 udp 0 0 localhost:2399 localhost:57508 ESTABELECIDO

Como você pode ver abaixo, a mensagem é recebida pelo servidor e a transmissão é verificada pela conexão:

Com esta introdução ao Netcat, você agora tem uma melhor compreensão de como usar essa ferramenta avançada para enviar dados de forma rápida e eficiente entre cliente e servidor. Confira a página inicial do projeto Netcat para mais informações.

Boa sorte com a sua programação! 🙂