Como simular um cliente TCP/UDP usando o Netcat
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! 🙂