Exemple #1
0
def broadcast_message(msg):
    for peer in list(peers.get_known_peers()):
        if peer != peers.get_local_peer():
            debug.output(debug.info, '[broadcast] send %s to ' % str(type(msg)) + str(peer))
            sender = client.Sender(peer)
            sender.send_message(msg)
            debug.output(debug.info, '[broadcast] sent %s to ' % str(type(msg)) + str(peer))
            del sender
            debug.output(debug.info, '[broadcast] close connection to ' + str(peer))
Exemple #2
0
def find_peers():
    global known_peers
    for peer in list(known_peers):
        if peer == get_local_peer():
            continue
        debug.output(debug.info,
                     '[find_peers] send GetPeersMessage to ' + str(peer))
        sender = client.Sender(peer)
        peers_message = sender.send_message(messages.GetPeersMessage())
        debug.output(debug.info,
                     '[find_peers] sent GetPeersMessage to ' + str(peer))
        for new_peer in peers_message.peers:
            add_peer(new_peer)
        del sender
        debug.output(debug.info,
                     '[find_peers] close connection to ' + str(peer))
Exemple #3
0
def serve():
    tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    orig = (HOST, PORT)
    tcp.bind(orig)
    tcp.listen(1)
    print('inicializando server...')
    print 'endereco:',tcp.getsockname()[0],'\nporta:',PORT
    print 'listening...'
    while True:
        con, address = tcp.accept()
        response = con.recv(1024)
        if not response: break
        print 'mensagem recebida:', response
        print 'Conectado por:', address
        json_decode= response.replace("'", "\"")
        r = json.loads(json_decode)
        print 'json:',r
        tipo = r['tipo']
        print 'tipo de request:', tipo
        if tipo == pcp.PEDIDO_LISTA_ARQUIVO:
            # envia lista de arquivos
            import client
            files = controle.listarArquivos()
            send = client.Sender(address, 54321)
            #con.close()
            send.sendListFiles(files,address)
        elif tipo == pcp.ENVIO_ARQUIVO:
            # envia arquivo
            gg = []
        elif tipo ==pcp.ENVIO_LISTA_ARQUIVO:
            d=[]
        # client.send(response)
            #con.close()
        print 'finalize request...'
        print ('Finalizando conexao do client:', address)


#serve()
Exemple #4
0
    def processRequest(self, client, address):
        ip=address[0]
        print 'connected by:',ip
        size = 1024
        #try:
        data = client.recv(size)
        if data:
            # Set the response to echo back the recieved data
            response = data
            print 'response:',response
            print 'processing request'
            #c=controle.process_request(response,address)
            json_decode = response.replace("'", "\"")
            r = json.loads(json_decode)
            tipo = r['tipo']
            print 'tipo de request:', tipo
            import client
            if tipo == pcp.PEDIDO_LISTA_ARQUIVO :
                # envia lista de arquivos
                files = controle.listarArquivos()
                send = client.Sender(address,'')
                send.sendListFiles(files,ip)
            elif tipo == pcp.ENVIO_LISTA_ARQUIVO:
                # envia lista arquivo
                arquivos=r['dados']
                print 'recuperou do json lista:',arquivos
                #arquivos.append('gasparzinho.jpg')
                diff=controle.compararListas(arquivos)
                if not diff :
                    print 'diretorio sincronizado com cliente'
                else:
                    print 'preparando envio de requisicao dos arqs nao sincronizados'
                    for f in diff:
                        send = client.Sender(ip, str(f))
                        send.getFile()
                        time.sleep(1)
            #client.send(response)
            elif tipo == pcp.PEDIDO_ARQUIVO:
                arquivo = r['dados']
                if type(arquivo) is list:
                    for a in arquivo:
                        print 'recuperou dados do json:', a
                        send = client.Sender(ip, a)
                        send.sendFile()
                        print 'finalize request'
                elif type(arquivo) is str:
                    print 'recuperou dados do json:', arquivo
                    send = client.Sender(ip, arquivo)
                    send.sendFile()
                    print 'finalize request'



            elif tipo == pcp.ENVIO_ARQUIVO:
                dados = r['dados']
                print 'recuperou dados do json:', dados
                controle.saveFile(dados[0],controle.decode(dados[1]))


        else:
            raise ('Client disconnected')
        print 'finalizando thread...'
Exemple #5
0
#!/usr/bin/python
from models import *
import client
import time
snd = client.Sender()
recv = client.Receiver()
from peewee import *
from types import *
import locale
import sys
import logging


class Reply():
    def run(self):
        while True:
            msg = recv.recv_json()
            sender = msg['sender']
            message = msg['message']
            token = message.split()
            if len(token) > 2:
                command = token[1]
            else:
                command = 'error'

            try:

                if command == 'info':

                    id = int(token[2])
                    try: