Como simular um cliente TCP/UDP usando 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 conexão usando o próprio 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 aceitará conexões e gerenciará transferências de dados através de um protocolo simples como TCP ou UDP.
Para saber mais sobre como gerenciar seus dados com Ubidots , descubra como enviar dados para Ubidots por TCP ou UDP .
O que é Netcat?
Netcat é um utilitário de rede que lê e grava dados em conexões de rede, usando 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 de depuração e exploração de rede rica em recursos que pode especificar parâmetros de rede e, ao mesmo tempo, estabelecer uma conexão com um host remoto por meio de um túnel.
Embora o Netcat possa fazer muitas coisas, seu objetivo principal e funções mais desejáveis são:
1.Crie um soquete inicial para estabelecer uma conexão do servidor ao cliente.
2.Uma vez conectado, o Netcat irá gerar automaticamente um segundo soquete para transmitir arquivos do servidor para o cliente e vice-versa. (Esta é a parte muito legal).
Um diagrama da arquitetura do protocolo de dados do Netcat é mostrado abaixo:
Como você verá abaixo, esta 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 “ouvir”, aguarda as conexões de entrada.
- -p: porta local.
- -u: define o modo UDP.
Teste seu entendimento do Netcat como cliente-servidor
Abra dois terminais de computador – o primeiro atuará como servidor e o segundo como cliente.
Cliente TCP
Com o Netcat, seu PC pode ser convertido em um servidor. Você desejará começar como um servidor que escuta na porta 2399 :
$ nc-l 2399
Também podemos usar o servidor para conectar-se à porta aberta recentemente ( 2399 ) do do cliente :
$ nc localhost2399
Como você pode ver na imagem abaixo, a conexão está estabelecida:
Com a conexão estabelecida, agora você pode escrever no servidor a partir do cliente :
$ nc localhost 2399 Olá Servidor
No terminal onde o servidor está rodando, seus arquivos de texto aparecerão perfeitamente.
$ 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 mencionamos acima, o Netcat permite converter 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, você só precisa adicionar -u ao comando para estabelecer a UDP :
$ nc -u -l 2399
Depois de iniciar o servidor, estabeleça a conexão com o cliente :
$ nc -u localhost2399
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 entende melhor como usar esta 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.
Feliz hacking! 🙂