Advertisement
RoW_Tobi

Untitled

Jun 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.84 KB | None | 0 0
  1. # Sender
  2. # Imports
  3. import getpass
  4. import math
  5. import os
  6. import socket
  7. import pickle
  8. import sys
  9. import time
  10. from struct import *
  11.  
  12. # Module / intern
  13. import ETModules
  14. import gui
  15.  
  16. # Options
  17. ToolBarWidth = 40
  18. Destination = 'C:\\Users\\'+ getpass.getuser() +'\\Downloads\\'
  19. Host = '134.255.216.31'
  20. Port = 50600
  21. Recv = 2048
  22.  
  23. while True:
  24.     try:
  25.         SenderSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  26.         SenderSocket.connect((Host, Port))
  27.         break
  28.  
  29.     except:
  30.         continue
  31.  
  32. Login = ETModules.ClientLogin(SenderSocket)
  33.  
  34. if Login:
  35.     UserStr = SenderSocket.recv(Recv)
  36.     UserList = pickle.loads(UserStr)
  37.     IDList = UserList[0]
  38.     NameList = UserList[1]
  39.  
  40.     IDSelection = gui.SendToSelect(IDList, NameList)
  41.  
  42.     IDSelection = pickle.dumps(IDSelection)
  43.     SenderSocket.send(IDSelection)
  44.  
  45.     FilePath = input('Bitte die Datei einfügen: ')
  46.  
  47.     FileInfo = os.stat(FilePath)
  48.     FileSize = FileInfo.st_size
  49.     FileSends = int(math.ceil(FileSize / 1024))
  50.     SendProzent = int(math.ceil(FileSends / ToolBarWidth))
  51.  
  52.     FileSendsBytes = pack('i', FileSends)
  53.  
  54.     FileList = FilePath.split('\\')
  55.     FileName = FileList[-1]
  56.  
  57.     try:
  58.         SenderSocket.sendall(bytes(FileName, 'utf8', errors='ignore'))
  59.         SenderSocket.send(FileSendsBytes)
  60.  
  61.     except:
  62.         print(FileName + 'konnte nicht gesendet werden')
  63.         sys.exit()
  64.  
  65.     while True:
  66.         try:
  67.             Decision = SenderSocket.recv(Recv)
  68.             Decision = bool(Decision)
  69.  
  70.             if Decision:
  71.                 timer = 0
  72.                 sys.stdout.write("[%s]" % (" " * ToolBarWidth))
  73.                 sys.stdout.flush()
  74.                 sys.stdout.write("\b" * (ToolBarWidth + 1))
  75.  
  76.                 i = open('Debug\\backup.jpg', 'wb')
  77.                 f = open(FilePath, 'rb')
  78.  
  79.                 FilePart = f.read(1024)
  80.  
  81.                 while FilePart:
  82.                     timer = timer + 1
  83.  
  84.                     if timer == SendProzent:
  85.                         sys.stdout.write("▰")
  86.                         sys.stdout.flush()
  87.                         timer = 0
  88.  
  89.                     SenderSocket.send(FilePart)
  90.                     i.write(FilePart)
  91.  
  92.                     FilePart = f.read(1024)
  93.                     time.sleep(0.01)
  94.  
  95.                 sys.stdout.write("\n")
  96.                 f.close()
  97.                 i.close()
  98.                 SenderSocket.close()
  99.  
  100.                 print(FileName + '\n wurde erfolgreich gesendet')
  101.                 break
  102.  
  103.             else:              
  104.                 Retry = gui.SendAsk()
  105.                 SenderSocket.send(bytes(Retry))
  106.                 if Retry:
  107.                     continue
  108.  
  109.                 else:
  110.                     SenderSocket.close()
  111.                     break
  112.  
  113.         except:
  114.             print(FileName + ' konnte nicht gesendet werden')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement