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 bibliotecasocket
para trabalhar com comunicações de rede. -
import json
: Importa a bibliotecajson
para lidar com a formatação e análise de dados JSON. -
import datetime
: Importa a bibliotecadatetime
para obter informações de data e hora. -
date
etime
: Obtêm a data e a hora atuais em formatos específicos. -
HOST
ePORT
: 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 bibliotecasocket
para trabalhar com comunicações de rede. -
import json
: Importa a bibliotecajson
para lidar com a formatação e análise de dados JSON. -
HOST
ePORT
: 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