diff --git a/socket_programming/file_transfer/file.txt b/socket_programming/file_transfer/file.txt new file mode 100644 index 000000000000..70c379b63ffa --- /dev/null +++ b/socket_programming/file_transfer/file.txt @@ -0,0 +1 @@ +Hello world \ No newline at end of file diff --git a/socket_programming/file_transfer/receiver.py b/socket_programming/file_transfer/receiver.py new file mode 100644 index 000000000000..fbb1527aa2eb --- /dev/null +++ b/socket_programming/file_transfer/receiver.py @@ -0,0 +1,31 @@ +import socket + +def start_ftp_server(host, port): + server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + server_socket.bind((host, port)) + server_socket.listen(1) + + print(f"Server listening on {host}:{port}...") + + while True: + client_socket, client_address = server_socket.accept() + print(f"Connection from {client_address}") + + file_name = client_socket.recv(1024).decode() + print(f"Receiving file: {file_name}") + + with open(file_name, 'wb') as file: + while True: + data = client_socket.recv(1024) + if not data: + break + file.write(data) + + print(f"File {file_name} received successfully.") + client_socket.close() + +if __name__ == "__main__": + host = '127.0.0.1' + port = 12345 + + start_ftp_server(host, port) diff --git a/socket_programming/file_transfer/sender.py b/socket_programming/file_transfer/sender.py new file mode 100644 index 000000000000..010617f18845 --- /dev/null +++ b/socket_programming/file_transfer/sender.py @@ -0,0 +1,26 @@ +import socket + +def send_file_to_server(host, port, file_path): + client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + client_socket.connect((host, port)) + + file_name = file_path.split('/')[-1] + client_socket.send(file_name.encode()) + + with open(file_path, 'rb') as file: + while True: + data = file.read(1024) + if not data: + break + client_socket.send(data) + + print(f"File {file_name} sent successfully.") + client_socket.close() + +if __name__ == "__main__": + host = '127.0.0.1' + port = 12345 + + file_path = 'file.txt' + + send_file_to_server(host, port, file_path)