Expectativas:
Aqui estão alguns pontos -chave que podem ser aprendidos neste artigo
Diagrama de configuração geral:
O sistema A e B devem ser capazes de fazer ping um no outro.
Suposições ou limitações:
NOTA: Você pode verificar a referência para experimentar enviar e receber pacotes UDP via Linux CLI antes de optar por arquivos python para realizar a mesma tarefa.
Arquivos Python:
Existem dois arquivos python servidor.py e cliente.py. O arquivo de servidor e o arquivo do cliente devem estar presentes no sistema de servidor e no cliente, respectivamente.
Servidor.py
soquete de importaçãoCliente.py
soquete de importaçãoEnviar/receber pacote UDP:
Vamos dar um exemplo como enviaremos o pacote UDP do sistema A para o sistema B. Portanto, no conceito de servidor-cliente, temos que executar o servidor no lado B e cliente no sistema A lado.
Também temos endereços IP válidos.
Sistema A IP: 192.168.1.6Agora, diferentemente dos pacotes UDP de envio e recebimento via Linux CLI, vamos executar servidor.py No sistema, B [192.168.1.102] e então vamos correr cliente.py No sistema A [192.168.1.6].
Como executar o servidor.PY em 192.168.1.102?
Aqui está o comando para executar o servidor.py
Servidor $ python3.PY 192.168.1.102 4444Aqui está a captura de tela
Aqui existem dois argumentos para o programa Python. 1st argumento é o endereço IP do próprio servidor, aqui seus 192.168.1.102 e 2nd Argumento é port qual servidor estará ouvindo, aqui escolhemos 4444.
Como administrar o cliente.PY em 192.168.1.6?
Aqui está o comando para executar o cliente.py
$ python3 cliente.PY 192.168.1.102 4444Aqui está a captura de tela
Aqui existem dois argumentos para o programa Python. 1st Argumento é o endereço IP do servidor, aqui seus 192.168.1.102 e 2nd argumento é porto onde o servidor está em execução. Para o nosso exemplo, é 4444.
Envie ou receba algum texto:
Agora, como você pode ver, estamos prontos para nos comunicar entre dois sistemas. Mas precisamos começar do cliente primeiro. Vamos digitar algo no cliente e ver se atinge o servidor ou não.
Envie dados do cliente: “Eu sou do cliente”
Screenshot Form Form Client:
Agora essa mensagem do cliente deve vir ao servidor. Aqui está a captura de tela do servidor.
Agora podemos ver no lado do servidor também temos opção de enviar algo para o cliente. Vamos tentar isso.
Envie dados do cliente: “Eu sou do servidor”
Captura de tela do servidor:
E aqui está a captura de tela no lado do cliente.
Agora isso continuará em tempos infinitos até pararmos o programa Python usando Ctrl+C.
Verifique o pacote UDP no Wireshark:
Agora fizemos alguma comunicação, mas como sabemos que o UDP foi usado para enviar ou receber esses pacotes. Então, podemos verificar a captura no Wireshark.
Vamos ver o pacote quando o cliente [192.168.1.6] Enviado dados [“Eu sou do cliente”] para servidor [192.168.1.6].
Explicação de código:
Para explicação básica de código python, consulte “Transferência de arquivo de soquete Python.
Explicaremos apenas códigos de linhas importantes para o arquivo python cliente e servidor. Existem comentários úteis dentro do código do cliente e do servidor.
Explicação do código do cliente:
Se Len (SYS.argv) == 3:A linha acima é necessária para verificar se o usuário passou os argumentos obrigatórios necessários. Ou o programa vai sair. O mesmo cheque existe no programa de servidor.
s = soquete.soquete (soquete.Af_inet, soquete.Sock_dgram, 0)A linha acima é criar servidor de soquete com UDP [SOCK_DGRAM] protocolo. O mesmo código está lá no servidor.py.
enquanto é verdade:Para executar o programa em loop infinito até o usuário fazer Ctrl+C. O mesmo código está lá no servidor.py.
s.sendto (send_data.Encode ('UTF-8'), (IP, porta))Para enviar dados para mencionado IP e porta número.
dados, endereço = s.RecvFrom (4096)Para receber quaisquer dados provenientes do servidor. O mesmo código está lá no servidor.py.
Explicação do código do servidor:
s.sendto (send_data.Encode ('UTF-8'), endereço)Envie dados para o endereço do cliente.
Conclusão:
Podemos enviar ou receber dados UDP usando o programa Python. Internamente, ele usa o mecanismo do cliente do servidor.
Referências:
Para entender o TCP: https: // linuxhint.com/tcp_packet_capture_analysis/
Para entender o UDP: https: // linuxhint.com/udp_wireshark_analysis/
Envie e receba pacotes UDP via Linux CLI:
https: // linuxhint.com/send_receive_udp_packets_linux_cli/
Transferência de arquivo de soquete python: Enviar:
https: // linuxhint.com/python_socket_file_transfer_send/