-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcliente.py
70 lines (55 loc) · 2.02 KB
/
cliente.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
#!/usr/bin/env/python
import sys
from terminal import *
from arquivo import *
from socket_cliente import *
class Cliente:
def __init__ (self, interfaceGrafica, tamanhoBuffer):
self.interfaceGrafica = interfaceGrafica
self.ip = ''
self.porta = 0
self.nomeArquivo = ""
self.term = None
self.arquivo = None
self.tamanhoBuffer = tamanhoBuffer
def executa (self):
dados = ''
# Inicializa atributos do cliente
self.inicializa ()
# Le dados do arquivo que sera enviado
self.arquivo = Arquivo (self.nomeArquivo)
self.arquivo.abre ('r')
dados = self.arquivo.le ()
self.arquivo.fecha ()
soc = Socket_cliente (self.ip, self.porta, self.tamanhoBuffer)
print 'Inciando a transmissao de dados...'
tamanho = len (dados)
tamanhoPacote = self.tamanhoBuffer
if (tamanho < tamanhoPacote):
tamanhoPacote = tamanho
inicio = 0
final = tamanhoPacote
contadorPacotes = 0
while inicio < (tamanho -1):
print 'Enviando o pacote: ' + str (contadorPacotes)
# Envia dados para o servidor
soc.enviaDados (dados [inicio:final])
inicio = final
final += tamanhoPacote
contadorPacotes += 1
print 'Encerrando a transmissao, foram enviados ' + \
str (contadorPacotes) + \
' pacotes para o host...'
def inicializa (self):
if (self.interfaceGrafica == 'N'):
# Inicializa a interface em modo texto
self.term = Terminal ()
else:
# Inicializa a interface grafica (nao implementada)
self.term = Terminal ()
# Requisita o ip do host
self.ip = self.term.leIp ()
# Requisita a porta do cliente
self.porta = self.term.lePorta ()
# Requisita o caminho do arquivo
self.nomeArquivo = self.term.leCaminhoArquivo ('Digite nome (caminho completo) do arquivo a enviar')