Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Sender
- # Imports
- import getpass
- import math
- import os
- import socket
- import pickle
- import sys
- import time
- from struct import *
- # Module / intern
- import ETModules
- import gui
- # Options
- ToolBarWidth = 40
- Destination = 'C:\\Users\\'+ getpass.getuser() +'\\Downloads\\'
- Host = '134.255.216.31'
- Port = 50600
- Recv = 2048
- while True:
- try:
- SenderSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- SenderSocket.connect((Host, Port))
- break
- except:
- continue
- Login = ETModules.ClientLogin(SenderSocket)
- if Login:
- UserStr = SenderSocket.recv(Recv)
- UserList = pickle.loads(UserStr)
- IDList = UserList[0]
- NameList = UserList[1]
- IDSelection = gui.SendToSelect(IDList, NameList)
- IDSelection = pickle.dumps(IDSelection)
- SenderSocket.send(IDSelection)
- FilePath = input('Bitte die Datei einfügen: ')
- FileInfo = os.stat(FilePath)
- FileSize = FileInfo.st_size
- FileSends = int(math.ceil(FileSize / 1024))
- SendProzent = int(math.ceil(FileSends / ToolBarWidth))
- FileSendsBytes = pack('i', FileSends)
- FileList = FilePath.split('\\')
- FileName = FileList[-1]
- try:
- SenderSocket.sendall(bytes(FileName, 'utf8', errors='ignore'))
- SenderSocket.send(FileSendsBytes)
- except:
- print(FileName + 'konnte nicht gesendet werden')
- sys.exit()
- while True:
- try:
- Decision = SenderSocket.recv(Recv)
- Decision = bool(Decision)
- if Decision:
- timer = 0
- sys.stdout.write("[%s]" % (" " * ToolBarWidth))
- sys.stdout.flush()
- sys.stdout.write("\b" * (ToolBarWidth + 1))
- i = open('Debug\\backup.jpg', 'wb')
- f = open(FilePath, 'rb')
- FilePart = f.read(1024)
- while FilePart:
- timer = timer + 1
- if timer == SendProzent:
- sys.stdout.write("▰")
- sys.stdout.flush()
- timer = 0
- SenderSocket.send(FilePart)
- i.write(FilePart)
- FilePart = f.read(1024)
- time.sleep(0.01)
- sys.stdout.write("\n")
- f.close()
- i.close()
- SenderSocket.close()
- print(FileName + '\n wurde erfolgreich gesendet')
- break
- else:
- Retry = gui.SendAsk()
- SenderSocket.send(bytes(Retry))
- if Retry:
- continue
- else:
- SenderSocket.close()
- break
- except:
- print(FileName + ' konnte nicht gesendet werden')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement