Reciever / app.py
gagandwaz's picture
Rename app.py.py to app.py
6730e98
# This file will be used for recieving files over socket connection.
import os
import socket
import time
import streamlit as st
# import streamlit as st
# import time
progress_text = "File Transferring...Please Wait"
from PIL import Image
image = Image.open('img2.jpg')
st.image(image)
st.title('Reciver Page')
st.divider()
st.header("Share files easily, securely, and fast!")
host = st.text_input("Host Name: ")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Trying to connect to socket.
with st.spinner('Searching For Sender...'):
time.sleep(3)
try:
sock.connect((host, 40000))
st.warning("Connected Successfully...",icon="✔")
except:
st.warning("Unable to connect",icon="⚠️")
exit(0)
# Send file details.
file_name = sock.recv(100).decode()
file_size = sock.recv(100).decode()
# Opening and reading file.
with open("./rec/" + file_name, "wb") as file:
c = 0
my_bar = st.progress(0, text=progress_text)
st.write("Waiting for Sender to select the File")
# Starting the time capture.
start_time = time.time()
# Running the loop while file is recieved.
while c <= int(file_size):
# my_bar.progress(50, text=progress_text)
data = sock.recv(1024)
if not (data):
break
file.write(data)
c += len(data)
# Ending the time capture.
end_time = time.time()
for percent_complete in range(100):
time.sleep(0.1)
my_bar.progress(percent_complete + 1, text=progress_text)
# my_bar.progress(100, text=progress_text)
with open("./rec/" + file_name,"rb") as file:
btn = st.download_button(
label="Download File",
data=file,
file_name=file_name,
)
st.write("File transfer Complete.Total time: ", int(end_time - start_time))
# Closing the socket.
sock.close()