diff --git a/Canguru/CanguruChat.py b/Canguru/CanguruChat.py deleted file mode 100755 index a985bae3cc76c3e31d6e1d486fe2865da7927d21..0000000000000000000000000000000000000000 --- a/Canguru/CanguruChat.py +++ /dev/null @@ -1,198 +0,0 @@ -#!/usr/bin/env python -#################### Protocol ################################################################# -# Marca - Tipo - Destino - Origem - Prioridade - Tamanho - Inic MSG - Mensagem - Fim MSG - CRC# -############################################################################################### - -#Marca - 1 Byte Marca inicio de transmissao, inicio de msg fim de msg -#Tipo - 0 Token, 1 - Msg -#Destino - pode variar de 1 a 4 -#Origem - pode variar de 1 a 4 -#Prioridade - pode variar de 0 a 7 -#Tamanho - tanto faz -#Marca (inicio msg) - 1 Byte -#Mensagem -#CRC - 8 bytes - -#Exemplo msg# -#~11313~oie~352D1036 -# ~ - inic transmissao -# 1 - tipo da mensagem -# 1 - destino da mensagem -# 3 - origem da mensagem -# 1 - prioridade da mensagem -# 3 - tamanho da string da mensagem -# ~ - delimitador de inicio da mensagem -# oie - mensagem -# ~ - delimitador de fim da mensagem -# 352D1036 - CRC - -import socket -import threading -import sys -import binascii -import time -import Queue - -global TOKEN -global StartTime -global HighPriority -StartTime = 0 -HighPriority = 10 -TOKEN = 0 -MACHINE_ID = 1 -SEND_PORT = 3131 # Porta que o Servidor envia -RECV_PORT = 3131 # Porta que o Servidor recebe - -class Protocol(): - def __init__ (self): - self.marca = "~" #Marca - self.type = str(0) #Alterar Depois - self.destiny = str(0) - self.origin = str(MACHINE_ID) - self.priority = str(0) - self.msg = str(0) - self.sizemsg = str(0) - self.crc = str(0) - - #set destiny message - def setDestiny(self): - sys.stdout.write('Destino: ') - self.destiny = raw_input() - while (0 >= int(self.destiny)) or (int(self.destiny) >= 5): - print 'Entrada Invalida, Por favor escolha entre 1 a 4' - sys.stdout.write('Destino: ') - self.destiny = raw_input() - self.destiny = str(self.destiny) - - #set Priority messsage - def setPriority(self): - sys.stdout.write('Prioridade: ') - self.priority = raw_input() - while (0 >= int(self.priority)) or (int(self.priority) >= 8): - print 'Entrada Invalida, Por favor escolha entre 1 a 7' - sys.stdout.write('Prioridade: ') - self.priority = raw_input() - self.priority = 7 - int(self.priority) - - def setType (self): - if (self.msg == 'token'): - self.type = str(0) - else: - self.type = str(1) - - #set message - def setMessage(self): - sys.stdout.write('Mensagem: ') - self.msg = raw_input() - - #set sizeof message - def setSizeof (self): - self.sizemsg = len(self.msg) - self.sizemsg = str(self.sizemsg) #String convert - - #set CRC32 - def setCRC32(self): - buff = (binascii.crc32(self.msg) & 0xFFFFFFFF) - self.crc = "%08X" % buff - - def getEmpacotar(self): - return self.marca + self.type + self.destiny + self.origin + str(self.priority) + self.sizemsg + self.marca + self.msg + self.marca + self.crc - - def setDesempacota(self, msg): - self.marca = msg[0] - self.type = msg[1] - self.destiny = int(msg[2]) - self.origin = msg[3] - self.priority = msg[4] - self.msg = msg.split('~', 3)[2] - self.crc = msg.split('~', 3)[3] - - def getCRC32(self): - buff = (binascii.crc32(self.msg) & 0xFFFFFFFF) - return "%08X" % buff - - -def token (): - global TOKEN - global StartTime - udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - tokenMessage = Protocol() - dest = (HOST, SEND_PORT) - while True: - EndTime = time.time() - if (EndTime - StartTime >= 10 and TOKEN == 1): - print 'MANDEI O TOKEN' - TOKEN = 0 - tokenMessage.Type = str(0) - msg = tokenMessage.getEmpacotar() - udp.sendto (msg,dest) - udp.close() - -def client (): - try: - global TOKEN - global HighPriority - udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - dest = (HOST, SEND_PORT) - protocolMessage = Protocol() - queue = Queue.PriorityQueue() - while True: - protocolMessage.setDestiny() - protocolMessage.setPriority() - protocolMessage.setMessage() - protocolMessage.Type = str(1) - protocolMessage.setSizeof() - protocolMessage.setCRC32() - msg = protocolMessage.getEmpacotar() - queue.put ((protocolMessage.priority, msg)) - print queue.queue - HighPriority = queue.queue[0] - print HighPriority[0] - if (TOKEN == 1): - print 'POSSO ENVIAR MSG' - #udp.sendto (msg, dest) - threadServer._Thread__stop() - threadToken._Thread__stop() - udp.close() - except: - print 'OPS, ALGO OCORREU ERRADO' - threadServer._Thread__stop() - threadToken._Thread__stop() - -def server (): - global TOKEN - global StartTime - udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - orig = ('', RECV_PORT) - udp.bind(orig) - protocolDescompactMessage = Protocol() - while True: - msg, cliente = udp.recvfrom(1024) - protocolDescompactMessage.setDesempacota(msg) - if (protocolDescompactMessage.type == '0' and TOKEN == 0): - print 'RECEBI O TOKEN' - TOKEN = 1 - StartTime = time.time() - else: - if protocolDescompactMessage.crc == protocolDescompactMessage.getCRC32(): - print msg - print '\n' + protocolDescompactMessage.origin + ' Escreveu: ' + protocolDescompactMessage.msg - else: - print 'ERRO, A MENSAGEM FOI RECIBIDA ERRADA' - udp.close() - -#------------------MAIN-----------------# - -if len(sys.argv) > 1: - TOKEN = 1 - print 'COMECEI COM O TOKEN' - StartTime = time.time() - -print "Ip da proxima maquina" -HOST = raw_input() -threadServer = threading.Thread(target=server) -threadClient = threading.Thread(target=client) -threadToken = threading.Thread(target=token) -threadServer.start() -threadClient.start() -threadToken.start() diff --git a/Canguru/README b/Canguru/README deleted file mode 100644 index 310f0b280c18822f0d99245fdb93bd023821bd87..0000000000000000000000000000000000000000 --- a/Canguru/README +++ /dev/null @@ -1,3 +0,0 @@ -Trabalho 2 de Redes 1 - -Para executar ./CanguruChat.py em um terminal e ./CanguruChat.py 1 em outro terminal \ No newline at end of file diff --git a/Canguru/getIp.py b/Canguru/getIp.py deleted file mode 100644 index c2d3e78dda445655c876b9410c2d72e9d931bd05..0000000000000000000000000000000000000000 --- a/Canguru/getIp.py +++ /dev/null @@ -1,6 +0,0 @@ -import socket - -s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) -s.connect(("gmail.com",80)) -print(s.getsockname()[0]) -s.close() diff --git a/Canguru/tentandop.py b/Chat.py similarity index 100% rename from Canguru/tentandop.py rename to Chat.py