Skip to content

Secure file transferring application based on python sockets with E2EE and hashing.

License

Notifications You must be signed in to change notification settings

anuja-rahul/socket-file-transfer

Repository files navigation

Beta tested on localhost (windows)
recommended for sharing small files only
transfer speeds can be slow considering this program isn't using any multi-threading.

receive.py(server) must be running before send.py(client) to establish a connection.
if not, it will most likely return a WinError-10061 (on windows).

To get started you need to have 2 directories called "send" and "receive"
on your working directory

You can either create them manually or you can call for an empty object 
from either SocketServer or SocketClient
which will generate the required directories and test files.

make sure to remove any test objects before instantiating either
the working server or client objects because the singleton design will only allow 
one instance/object  per class from both SocketServer and SocketClient.

in case of an unknown error check your log file from (./logs)
they will most likely contain the type of the error, name of the method in which 
the said error originated and the time of the error.
"""
client for sending the files
socket-file-transfer/send.py
"""

from socket_client import SocketClient

send_instance = SocketClient(key=b"TestPassword1234", nonce=b"TestNonce1234567", send=True, file="filename.extension")
send_instance.send_data(port=8999)

# param: nonce,key (both key and nonce will only accept exactly 16 characters of bytes)
# param: send (send must be True before calling the send_data() method)
# param: file (file must be the name(with extension) of the file in the send folder which you intend to send.)
# param: port (default value is 8999, but can be changed depending on user preference)
"""
server for receiving the files
socket-file-transfer/receive.py
"""

from socket_server import SocketServer

receive_instance = SocketServer(key=b"TestPassword1234", nonce=b"TestNonce1234567", receive=True, file="filename.extension")
receive_instance.receive_data(port=8999)

# param: nonce,key (both key and nonce will only accept exactly 16 characters of bytes)
# param: receive (send must be True before calling the receive_data() method)
# param: file (file must be the name(with extension) of the file which you intend to receive from the client.)
# param: port (default value is 8999, but can be changed depending on user preference)

About

Secure file transferring application based on python sockets with E2EE and hashing.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages