-
Notifications
You must be signed in to change notification settings - Fork 0
/
BuscaRemotaCliente.py
96 lines (69 loc) · 2.08 KB
/
BuscaRemotaCliente.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import socket
import scriptutil as SU
import BuscaArquivo as ba
import pickle
from Auxiliares import Auxiliares
HOST = "127.0.0.1"
PORT = 42000
counter = 0
#TODO implementar segurança na procura, para nao deixar o daemon "inseguro" escutando numa porta
class BuscaRemotaCliente:
def __init__(self):
self.ips=[]
print "Iniciando busca remota no servidor"
self.resultado=""
self.aux = Auxiliares()
self.host=""
self.port=42000
self.termo=""
def defineHost(self,host):
self.host=host
def definePort(self,port):
self.port=port
def obtemResultado(self):
return self.resultado
def busca(self, host, port, termo):
sock=self.conectar(host, port)
if sock != -1:
self.buscaRemota(sock, termo)
self.desconectar(sock)
def conectar(self, host, port):
mySocket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
try:
mySocket.connect( ( host, port ) )
print "Connectado ao servidor"
except:
print "ERRO ao conectar"
return -1
return mySocket
def desconectar(self, sock):
print "Conexao terminada!"
sock.close()
def defineListaMaquinas(self, lista_maquinas):
self.lista_maquinas=lista_maquinas
def obtemListaMaquinas(self):
return self.lista_maquinas
def buscaRemota(self, mySocket, termo):
serverMessage = mySocket.recv( 1024 )
if not serverMessage:
return
procura = ba.BuscaArquivo()
procura.defineNomeArquivo(termo)
if self.lista_maquinas:
procura.defineListaMaquinas(self.obtemListaMaquinas())
procura.defineDiretorio("/home/daniel/media/mp3")
mySocket.send( pickle.dumps(procura) )
self.aux.printDebug("Agente enviado")
serverMessage = " " # mySocket.recv( 1024 )
cli_resultado=""
while serverMessage != "\n":
serverMessage = mySocket.recv( 1024 )
if serverMessage != "\n":
cli_resultado+=serverMessage
# print "recebendo["+serverMessage+"]"
# print clientMessage ,"", serverMessage
self.aux.printDebug("Agente recebido de volta")
ag_procura=pickle.loads(cli_resultado)
self.resultado=ag_procura.obtemResultado()