From 93b5c08e83d4b667b746ef39bbc463ca61a07760 Mon Sep 17 00:00:00 2001 From: FernandoErd <fernandoerd2012@gmail.com> Date: Mon, 31 Oct 2016 23:56:35 -0200 Subject: [PATCH] Protocol maybe working --- Canguru/Cliente.py | 133 +++++++++++++++++++++++---------------------- 1 file changed, 69 insertions(+), 64 deletions(-) diff --git a/Canguru/Cliente.py b/Canguru/Cliente.py index 6c2b766..acc795b 100755 --- a/Canguru/Cliente.py +++ b/Canguru/Cliente.py @@ -1,14 +1,22 @@ #!/usr/bin/env python -#################### Protocol ############################# -# Marca - Destino - Prioridade - Tamamnho - Messagem - CRC# -########################################################### +#################### Protocol ###################################### +# Marca - Destino - Origem - Prioridade - Tamamnho - Menssagem - CRC# +#################################################################### + +#Marca - 1 Byte +#Destino - 4 Bytes +#Origem - 4 Bytes +#Prioridade - 4 Bytes +#Tamanho - 32 bytes +#Menssagem - ?? +#CRC - 4 bytes import socket import threading import sys import binascii -HOST = "127.0.0.1" # Endereco IP do Servidor +HOST = "127.0.0.1" # Endereco IP do Servidor SEND_PORT = 5000 # Porta que o Servidor envia RECV_PORT = 5001 # Porta que o Servidor recebe @@ -21,68 +29,66 @@ class FuncThread(threading.Thread): def run(self): self._target(*self._args) -class Protocol(): - def __init__ (): - self.marca = "~" #Marca - - #Get sizeof message - def sizeof (self, msg): - self.sizemsg = sys.getsizeof(msg) - print self.sizemsg - - #Get destiny message - def getdestiny(): - print 'Destino:' - self.destiny = raw_input() +class Protocol: + def getMarca(self): + self.marca = "~" #Marca + + #Get destiny message + def getDestiny(self): + print 'Destino:' + self.destiny = raw_input() + self.destiny = str(self.destiny) + + def getOrigin(self): + self.origin = "1" + + #Get Priority messsage + def getPriority(self): + print 'Prioridade:' + self.priority = raw_input() + self.priority = str(self.priority) + + #Get message + def getMessage(self): + print 'Mensagem:' + self.msg = raw_input() + + #Get sizeof message + def getSizeof (self): + self.sizemsg = sys.getsizeof(self.msg) + self.sizemsg = str(self.sizemsg) #String convert + print self.sizemsg - #Get Priority messsage - def getPriority(): - print 'Prioridade:' - self.priority = raw_input() - - #Get message - def getMessage(): - print 'Mensagem:' - self.msg = raw_input() - - #def empacotar(): - # return self.marca + self.sizemsg - - #Get CRC32 - def getCRC32(msg): - buff = (binascii.crc32(msg) & 0xFFFFFFFF) - return "%08X" % buff - -class queue(object): - def __init__(self): - self.dados = [] - - def insere(self, elemento): - self.dados.append(elemento) - - def retira(self): - return self.dados.pop(0) - - def vazia(self): - return len(self.dados) == 0 + #Get CRC32 + def getCRC32(self): + buff = (binascii.crc32(self.msg) & 0xFFFFFFFF) + self.crc = "%08X" % buff + def empacotar(self): + return self.marca + self.destiny + self.origin + self.priority + self.sizemsg + self.msg + self.crc def client (): - udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - dest = (HOST, SEND_PORT) - - print 'Para sair digite exit\n' - print 'Mensagem:' - msg = raw_input() - hostname = socket.gethostname() # Pega o hostname - - while msg <> 'exit': - udp.sendto (hostname, dest) # Envia Hostname - udp.sendto (msg, dest) #Envia Mensagem - print 'Mensagem:' - msg = raw_input() - hostname = socket.gethostname() - udp.close() + udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + dest = (HOST, SEND_PORT) + print 'Para sair digite exit\n' + print 'Mensagem:' + hostname = socket.gethostname() + protocolMessage = Protocol() + protocolMessage.getMarca() + protocolMessage.getDestiny() + protocolMessage.getOrigin() + protocolMessage.getPriority() + protocolMessage.getMessage() + protocolMessage.getSizeof() + protocolMessage.getCRC32() + msg = protocolMessage.empacotar() + while True: + udp.sendto (hostname, dest) # Envia Hostname + udp.sendto (msg, dest) #Envia Mensagem + print 'Mensagem:' + msg = raw_input() + hostname = socket.gethostname() + udp.close() def server (): print 'Estou no Server' @@ -106,5 +112,4 @@ if len(sys.argv) > 1: threadServer = FuncThread (server) threadServer.start() -threadClient = FuncThread (client) -threadClient.start() +client () -- GitLab