Transferir Arquivos via Sockets
Importante: Esta página não se encontra completa, por favor ajude a melhorá-la.
Irei explicar nestes simples exemplos como transferir um arquivo de um determinado local (seu computador por exemplo), para outro local qualquer, através de socket.
Em Python, manipular sockets é uma tarefa extremamente fácil.
Vamos supor que você que transferir um FICHEIRO.rar
do seu computador, para outro computador: este outro computador, deve estar rodando o servidor, esperando uma conexão do cliente.
# Servidor
import socket
print "Servidor"
HOST = "localhost"
PORT = 57000
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Escutando a porta..."
s.bind((HOST,PORT))
s.listen(1)
print "Aceitando a conexao..."
conn,addr= s.accept()
print "recebendo o arquivo..."
arq = open('File_ouputt.rar','wb')
while 1:
dados=conn.recv(1024)
if not dados:
break
arq.write(dados)
print "saindo..."
arq.close()
conn.close()
Então no seu PC você com o arquivo FICHEIRO.rar
, executará o Cliente.py
:
# Cliente
import socket
print "Clinte"
HOST='localhost' #coloca o host do servidor
PORT=57000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print "conectando com servidor..."
s.connect((HOST,PORT))
print "abrindo arquivo..."
arq=open('File.rar','rb')
print "enviado arquivo"
for i in arq:
#print i
s.send(i)
print "saindo..."
arq.close()
s.close()
Este exemplo acima é muito simples, você pode adaptar, modificar e melhorar toda sua estrutura de acordo com a necessidade.