Skip to content

Instantly share code, notes, and snippets.

@faelp22
Created May 10, 2019 19:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save faelp22/7bc0927ffdee8ae41f8f4ac4da63048c to your computer and use it in GitHub Desktop.
Save faelp22/7bc0927ffdee8ae41f8f4ac4da63048c to your computer and use it in GitHub Desktop.
Um simples exemplo de cliente socket com python
#!/usr/bin/env python3
# fonte http://pythonclub.com.br/upload-de-arquivos-com-socket-e-struct.html
import socket
import struct
host = '127.0.0.1'
port = 8001
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
arquivo = "/caminho/para/arquivo.txt"
with open(arquivo, 'rb') as arq:
dados_arquivo = arq.read()
serializar = struct.Struct("{}s {}s".format(len(arquivo), len(dados_arquivo)))
dados_upload = serializar.pack(*[arquivo.encode(), dados_arquivo])
sock.send("Enviarei um arquivo chamado: {} contendo: {} bytes".format(arquivo, len(dados_arquivo)).encode())
ouvir = sock.recv(1024)
if ouvir.decode() == "Pode enviar!":
sock.send(dados_upload)
resposta = sock.recv(1024)
print(resposta.decode())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment