Este é um projeto que envolve um cliente e um servidor implementados em Python, usando sockets TCP para comunicação. O servidor trata solicitações de clientes de acordo com as seguintes regras:
- get_date: Retorna a data atual no formato "DD/MM/YYYY" em um JSON.
- get_time: Retorna a hora atual no formato "HH:MM:SS" em um JSON.
- Qualquer outra solicitação: Retorna a mensagem "Invalid Command!!!"
O servidor também exibe informações sobre o IP e a porta de origem dos clientes, bem como os dados enviados.
O arquivo Server.py contém o código para um servidor que aceita conexões de clientes por meio de sockets TCP. Ele processa solicitações de clientes e responde de acordo com as regras definidas.
-
import socket: Importa a bibliotecasocketpara trabalhar com comunicações de rede. -
import json: Importa a bibliotecajsonpara lidar com a formatação e análise de dados JSON. -
import datetime: Importa a bibliotecadatetimepara obter informações de data e hora. -
dateetime: Obtêm a data e a hora atuais em formatos específicos. -
HOSTePORT: Definem o endereço IP e a porta em que o servidor escutará conexões de clientes. -
socket.socket(socket.AF_INET, socket.SOCK_STREAM): Cria um objeto de soquete para comunicação TCP. -
s.bind((HOST, PORT)): Liga o servidor a um endereço e uma porta específicos. -
s.listen(): Aguarda a chegada de conexões de clientes. -
conn, addr = s.accept(): Aceita uma conexão de um cliente e obtém informações sobre o cliente. -
Processamento de solicitações: Com base nas solicitações recebidas, o servidor responde com a data atual, a hora atual ou uma mensagem de comando inválido. Ele também imprime o IP e a porta do cliente, bem como os dados enviados.
-
Encerramento da conexão: O servidor permite ao cliente encerrar a conexão usando o comando
exit.
O arquivo Client.py contém o código para um cliente que se conecta a um servidor por meio de sockets TCP. Ele permite ao usuário enviar comandos específicos ao servidor e receber respostas.
-
import socket: Importa a bibliotecasocketpara trabalhar com comunicações de rede. -
import json: Importa a bibliotecajsonpara lidar com a formatação e análise de dados JSON. -
HOSTePORT: Definem o endereço IP e a porta do servidor ao qual o cliente se conectará. -
socket.socket(socket.AF_INET, socket.SOCK_STREAM): Cria um objeto de soquete para comunicação TCP. -
s.connect((HOST, PORT)): Estabelece uma conexão com o servidor usando o endereço IP e a porta especificados. -
req = input("Digite sua requisicao"): Solicita que o usuário insira uma requisição. -
s.sendall(bytes(req,"utf-8")): Envia a requisição ao servidor após convertê-la em bytes. -
data = s.recv(1024): Recebe dados do servidor (até 1024 bytes). -
recieved_data = (data.decode('utf-8')): Decodifica os dados recebidos de volta em uma representação de string. -
Processamento de dados: Verifica se os dados recebidos representam um JSON válido e os imprime.
Lembre-se de que essas explicações fornecem uma visão geral das funções em ambos os arquivos. Cada arquivo contém um conjunto de instruções que implementam essas funcionalidades.
Ana Athayde