From aa55fab257ca40210270a4b5dadb602d56e63579 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 11:41:35 -0400 Subject: [PATCH 01/19] added sample file to transfer --- file_transfer_protocol/mytext.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 file_transfer_protocol/mytext.txt diff --git a/file_transfer_protocol/mytext.txt b/file_transfer_protocol/mytext.txt new file mode 100644 index 000000000000..f63ea06df5da --- /dev/null +++ b/file_transfer_protocol/mytext.txt @@ -0,0 +1,2 @@ +Hello +This is sample data From b80a0d93148615e8991040fa28b5463f2cc8603c Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 11:44:11 -0400 Subject: [PATCH 02/19] split client and server into separate files --- file_transfer_protocol/ftp_client.py | 23 +++++++++ file_transfer_protocol/ftp_client_server.py | 57 --------------------- file_transfer_protocol/ftp_server.py | 24 +++++++++ 3 files changed, 47 insertions(+), 57 deletions(-) create mode 100644 file_transfer_protocol/ftp_client.py delete mode 100644 file_transfer_protocol/ftp_client_server.py create mode 100644 file_transfer_protocol/ftp_server.py diff --git a/file_transfer_protocol/ftp_client.py b/file_transfer_protocol/ftp_client.py new file mode 100644 index 000000000000..27b2119778cd --- /dev/null +++ b/file_transfer_protocol/ftp_client.py @@ -0,0 +1,23 @@ +import socket # Import socket module + +s = socket.socket() # Create a socket object +host = socket.gethostname() # Get local machine's name +port = 60000 # Reserve a port for your service. + +s.connect((host, port)) +s.send("Hello server!") + +with open('received_file', 'wb') as f: + print('file opened') + while True: + print('receiving data...') + data = s.recv(1024) # Recieve data in chunks of 1024 bytes + print('data=%s', (data)) + if not data: # Stop when there is no more data + break + f.write(data) # Write data to a file + +f.close() +print('Successfully get the file') +s.close() +print('Connection closed') diff --git a/file_transfer_protocol/ftp_client_server.py b/file_transfer_protocol/ftp_client_server.py deleted file mode 100644 index 414c336dee9f..000000000000 --- a/file_transfer_protocol/ftp_client_server.py +++ /dev/null @@ -1,57 +0,0 @@ -# server - -import socket # Import socket module - -port = 60000 # Reserve a port for your service. -s = socket.socket() # Create a socket object -host = socket.gethostname() # Get local machine name -s.bind((host, port)) # Bind to the port -s.listen(5) # Now wait for client connection. - -print('Server listening....') - -while True: - conn, addr = s.accept() # Establish connection with client. - print('Got connection from', addr) - data = conn.recv(1024) - print('Server received', repr(data)) - - filename = 'mytext.txt' - with open(filename, 'rb') as f: - in_data = f.read(1024) - while in_data: - conn.send(in_data) - print('Sent ', repr(in_data)) - in_data = f.read(1024) - - print('Done sending') - conn.send('Thank you for connecting') - conn.close() - - -# client side server - -import socket # Import socket module - -s = socket.socket() # Create a socket object -host = socket.gethostname() # Get local machine name -port = 60000 # Reserve a port for your service. - -s.connect((host, port)) -s.send("Hello server!") - -with open('received_file', 'wb') as f: - print('file opened') - while True: - print('receiving data...') - data = s.recv(1024) - print('data=%s', (data)) - if not data: - break - # write data to a file - f.write(data) - -f.close() -print('Successfully get the file') -s.close() -print('connection closed') diff --git a/file_transfer_protocol/ftp_server.py b/file_transfer_protocol/ftp_server.py new file mode 100644 index 000000000000..db87211ccba3 --- /dev/null +++ b/file_transfer_protocol/ftp_server.py @@ -0,0 +1,24 @@ +import socket # Import socket module + +port = 60000 # Reserve a port for your service. +s = socket.socket() # Create a socket object +host = socket.gethostname() # Get local machine name +s.bind((host, port)) # Bind to the port +s.listen(5) # Now wait for client connection. + +print('Server listening....') + +while True: + conn, addr = s.accept() # Establish connection with client. + print('Got connection from', addr) + filename = 'mytext.txt' + with open(filename, 'rb') as f: + in_data = f.read(1024) + while in_data: + conn.send(in_data) + print('Sent ', repr(in_data)) + in_data = f.read(1024) + + print('Done sending') + conn.send(b'Thank you for connecting') + conn.close() From 72fc419711fadcf5d1992080a5e587460479a47f Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 12:03:25 -0400 Subject: [PATCH 03/19] client and server now work in python2 --- .../{ftp_client.py => client.py} | 13 ++++++----- .../{ftp_server.py => server.py} | 22 +++++++++++-------- 2 files changed, 20 insertions(+), 15 deletions(-) rename file_transfer_protocol/{ftp_client.py => client.py} (54%) rename file_transfer_protocol/{ftp_server.py => server.py} (57%) diff --git a/file_transfer_protocol/ftp_client.py b/file_transfer_protocol/client.py similarity index 54% rename from file_transfer_protocol/ftp_client.py rename to file_transfer_protocol/client.py index 27b2119778cd..935c9b06bab5 100644 --- a/file_transfer_protocol/ftp_client.py +++ b/file_transfer_protocol/client.py @@ -1,8 +1,8 @@ import socket # Import socket module s = socket.socket() # Create a socket object -host = socket.gethostname() # Get local machine's name -port = 60000 # Reserve a port for your service. +host = socket.gethostname() # Get local machine name +port = 12312 s.connect((host, port)) s.send("Hello server!") @@ -11,13 +11,14 @@ print('file opened') while True: print('receiving data...') - data = s.recv(1024) # Recieve data in chunks of 1024 bytes + data = s.recv(1024) print('data=%s', (data)) - if not data: # Stop when there is no more data + if not data: break - f.write(data) # Write data to a file + # write data to a file + f.write(data) f.close() print('Successfully get the file') s.close() -print('Connection closed') +print('connection closed') diff --git a/file_transfer_protocol/ftp_server.py b/file_transfer_protocol/server.py similarity index 57% rename from file_transfer_protocol/ftp_server.py rename to file_transfer_protocol/server.py index db87211ccba3..94b30147d2d2 100644 --- a/file_transfer_protocol/ftp_server.py +++ b/file_transfer_protocol/server.py @@ -1,6 +1,6 @@ import socket # Import socket module -port = 60000 # Reserve a port for your service. +port = 12312 # Reserve a port for your service. s = socket.socket() # Create a socket object host = socket.gethostname() # Get local machine name s.bind((host, port)) # Bind to the port @@ -11,14 +11,18 @@ while True: conn, addr = s.accept() # Establish connection with client. print('Got connection from', addr) - filename = 'mytext.txt' - with open(filename, 'rb') as f: - in_data = f.read(1024) - while in_data: - conn.send(in_data) - print('Sent ', repr(in_data)) - in_data = f.read(1024) + data = conn.recv(1024) + print('Server received', repr(data)) + + filename='mytext.txt' + f = open(filename,'rb') + l = f.read(1024) + while (l): + conn.send(l) + print('Sent ',repr(l)) + l = f.read(1024) + f.close() print('Done sending') - conn.send(b'Thank you for connecting') + conn.send('Thank you for connecting') conn.close() From f6642658ac8a9f4059c08daa63b81dfa073476dd Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 12:06:26 -0400 Subject: [PATCH 04/19] server works on python3 --- file_transfer_protocol/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index 94b30147d2d2..11c09576de9a 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -24,5 +24,5 @@ f.close() print('Done sending') - conn.send('Thank you for connecting') + conn.send(b'Thank you for connecting') conn.close() From 8c97bf4555e2d3b7e25e586ef917375148f510fe Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 12:09:13 -0400 Subject: [PATCH 05/19] client works on python3 --- file_transfer_protocol/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index 935c9b06bab5..e3cba2bd2d2b 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -5,7 +5,7 @@ port = 12312 s.connect((host, port)) -s.send("Hello server!") +s.send(b'Hello server!') with open('received_file', 'wb') as f: print('file opened') From d1903ef3194638d77e1f4d9e551a50687b74dff2 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 16:24:59 -0400 Subject: [PATCH 06/19] allow configurable ONE_CONNECTION_ONLY for testing server --- file_transfer_protocol/client.py | 13 ++++++------- file_transfer_protocol/server.py | 6 ++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index e3cba2bd2d2b..ee491d56cb3b 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -7,18 +7,17 @@ s.connect((host, port)) s.send(b'Hello server!') -with open('received_file', 'wb') as f: - print('file opened') +with open('Received_file', 'wb') as f: + print('File opened') + print('Receiving data...') while True: - print('receiving data...') data = s.recv(1024) - print('data=%s', (data)) + print('data='+str(data)) if not data: break # write data to a file f.write(data) -f.close() -print('Successfully get the file') +print('Successfully got the file') s.close() -print('connection closed') +print('Connection closed') diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index 11c09576de9a..b94343da1ab2 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -1,5 +1,7 @@ import socket # Import socket module +ONE_CONNECTION_ONLY = True # Set this to False if you wish to continuously accept connections + port = 12312 # Reserve a port for your service. s = socket.socket() # Create a socket object host = socket.gethostname() # Get local machine name @@ -26,3 +28,7 @@ print('Done sending') conn.send(b'Thank you for connecting') conn.close() + if ONE_CONNECTION_ONLY: # This is to make sure that the program doesn't hang while testing + break +s.shutdown(1) +s.close() From ce149860a087d1ae872e3bcdb5db360af032806f Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 16:25:56 -0400 Subject: [PATCH 07/19] allow testing of ftp server + client --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a3ff22fb09b7..398d5f2d554a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,8 +12,6 @@ script: - pytest . --doctest-modules --ignore=data_structures/stacks/balanced_parentheses.py --ignore=data_structures/stacks/infix_to_postfix_conversion.py - --ignore=file_transfer_protocol/ftp_send_receive.py - --ignore=file_transfer_protocol/ftp_client_server.py --ignore=machine_learning/linear_regression.py --ignore=machine_learning/perceptron.py --ignore=machine_learning/random_forest_classification/random_forest_classification.py From e717e4b246be23d90aeeef8c05b5f5c01e73f9a2 Mon Sep 17 00:00:00 2001 From: AlexDvorak Date: Tue, 6 Aug 2019 16:51:30 -0400 Subject: [PATCH 08/19] use f-strings --- file_transfer_protocol/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index ee491d56cb3b..2a8487a3c023 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -12,7 +12,7 @@ print('Receiving data...') while True: data = s.recv(1024) - print('data='+str(data)) + print(f”data={data}”) if not data: break # write data to a file From e9326b6805aae60eca4f91fb4775d96e115b4de6 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 21:39:57 -0400 Subject: [PATCH 09/19] removed single letter vars --- file_transfer_protocol/client.py | 14 +++++++------- file_transfer_protocol/server.py | 26 +++++++++++++------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index ee491d56cb3b..4708f49d8497 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -1,23 +1,23 @@ import socket # Import socket module -s = socket.socket() # Create a socket object +sock = socket.socket() # Create a socket object host = socket.gethostname() # Get local machine name port = 12312 -s.connect((host, port)) -s.send(b'Hello server!') +sock.connect((host, port)) +sock.send(b'Hello server!') -with open('Received_file', 'wb') as f: +with open('Received_file', 'wb') as file: print('File opened') print('Receiving data...') while True: - data = s.recv(1024) + data = sock.recv(1024) print('data='+str(data)) if not data: break # write data to a file - f.write(data) + file.write(data) print('Successfully got the file') -s.close() +sock.close() print('Connection closed') diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index b94343da1ab2..5461c7e6afb4 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -3,32 +3,32 @@ ONE_CONNECTION_ONLY = True # Set this to False if you wish to continuously accept connections port = 12312 # Reserve a port for your service. -s = socket.socket() # Create a socket object +sock = socket.socket() # Create a socket object host = socket.gethostname() # Get local machine name -s.bind((host, port)) # Bind to the port -s.listen(5) # Now wait for client connection. +sock.bind((host, port)) # Bind to the port +sock.listen(5) # Now wait for client connection. print('Server listening....') while True: - conn, addr = s.accept() # Establish connection with client. + conn, addr = sock.accept() # Establish connection with client. print('Got connection from', addr) data = conn.recv(1024) print('Server received', repr(data)) filename='mytext.txt' - f = open(filename,'rb') - l = f.read(1024) - while (l): - conn.send(l) - print('Sent ',repr(l)) - l = f.read(1024) - f.close() + file = open(filename,'rb') + data = file.read(1024) + while (data): + conn.send(data) + print('Sent ',repr(data)) + data = file.read(1024) + file.close() print('Done sending') conn.send(b'Thank you for connecting') conn.close() if ONE_CONNECTION_ONLY: # This is to make sure that the program doesn't hang while testing break -s.shutdown(1) -s.close() +sock.shutdown(1) +sock.close() From dda736f5bc2e4ff84b7bf05b7c827a7c3efd04f5 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 21:52:19 -0400 Subject: [PATCH 10/19] fixed bad quote marks --- file_transfer_protocol/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index 5b446b7e0eb6..aaab495b954a 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -12,7 +12,7 @@ print('Receiving data...') while True: data = s.recv(1024) - print(f”data={data}”) + print(f"data={data}") if not data: break # write data to a file From 3f8af015c089adec9c7a87dd1aab7aa5fdfebbfa Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 21:56:11 -0400 Subject: [PATCH 11/19] clearer file handler names --- file_transfer_protocol/client.py | 4 ++-- file_transfer_protocol/server.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index aaab495b954a..777d87f5b549 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -7,7 +7,7 @@ sock.connect((host, port)) sock.send(b'Hello server!') -with open('Received_file', 'wb') as file: +with open('Received_file', 'wb') as in_file: print('File opened') print('Receiving data...') while True: @@ -16,7 +16,7 @@ if not data: break # write data to a file - file.write(data) + in_file.write(data) print('Successfully got the file') sock.close() diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index 5461c7e6afb4..ea2d264f1954 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -17,13 +17,13 @@ print('Server received', repr(data)) filename='mytext.txt' - file = open(filename,'rb') - data = file.read(1024) + out_file = open(filename,'rb') + data = out_file.read(1024) while (data): conn.send(data) print('Sent ',repr(data)) - data = file.read(1024) - file.close() + data = out_file.read(1024) + out_file.close() print('Done sending') conn.send(b'Thank you for connecting') From 317fffcc5aade0883c5ccea888a8615601be9cb1 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 22:01:19 -0400 Subject: [PATCH 12/19] 'with open() as' syntax --- file_transfer_protocol/server.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index ea2d264f1954..f5999a7a01cd 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -2,6 +2,7 @@ ONE_CONNECTION_ONLY = True # Set this to False if you wish to continuously accept connections +filename='mytext.txt' port = 12312 # Reserve a port for your service. sock = socket.socket() # Create a socket object host = socket.gethostname() # Get local machine name @@ -16,19 +17,18 @@ data = conn.recv(1024) print('Server received', repr(data)) - filename='mytext.txt' - out_file = open(filename,'rb') - data = out_file.read(1024) - while (data): - conn.send(data) - print('Sent ',repr(data)) - data = out_file.read(1024) - out_file.close() + with open(filename,'rb') as out_file: + data = out_file.read(1024) + while (data): + conn.send(data) + print('Sent ',repr(data)) + data = out_file.read(1024) print('Done sending') conn.send(b'Thank you for connecting') conn.close() if ONE_CONNECTION_ONLY: # This is to make sure that the program doesn't hang while testing break + sock.shutdown(1) sock.close() From db37b8f545ab8acf70f7db5f637d573987a7eaec Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 22:08:01 -0400 Subject: [PATCH 13/19] unicode and emojis in the test data --- file_transfer_protocol/mytext.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/file_transfer_protocol/mytext.txt b/file_transfer_protocol/mytext.txt index f63ea06df5da..54cfa7f766c7 100644 --- a/file_transfer_protocol/mytext.txt +++ b/file_transfer_protocol/mytext.txt @@ -1,2 +1,6 @@ Hello This is sample data +«küßî» +“ЌύБЇ” +😀😉 +😋 From 06698bdf7b6d35c71867e75bac97bf06a6f12908 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 22:08:56 -0400 Subject: [PATCH 14/19] s -> sock --- file_transfer_protocol/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index 777d87f5b549..bdd438659f87 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -11,7 +11,7 @@ print('File opened') print('Receiving data...') while True: - data = s.recv(1024) + data = sock.recv(1024) print(f"data={data}") if not data: break From d951521a7e85ea313ccc0d7d6b2a8b54523a64e5 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 22:23:54 -0400 Subject: [PATCH 15/19] consistent comment spacing --- file_transfer_protocol/client.py | 9 ++++----- file_transfer_protocol/server.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index bdd438659f87..7dec25f5bd1b 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -1,7 +1,7 @@ -import socket # Import socket module +import socket # Import socket module -sock = socket.socket() # Create a socket object -host = socket.gethostname() # Get local machine name +sock = socket.socket() # Create a socket object +host = socket.gethostname() # Get local machine name port = 12312 sock.connect((host, port)) @@ -15,8 +15,7 @@ print(f"data={data}") if not data: break - # write data to a file - in_file.write(data) + in_file.write(data) # Write data to a file print('Successfully got the file') sock.close() diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index f5999a7a01cd..e808e54d61ac 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -1,18 +1,18 @@ -import socket # Import socket module +import socket # Import socket module -ONE_CONNECTION_ONLY = True # Set this to False if you wish to continuously accept connections +ONE_CONNECTION_ONLY = True # Set this to False if you wish to continuously accept connections filename='mytext.txt' -port = 12312 # Reserve a port for your service. -sock = socket.socket() # Create a socket object -host = socket.gethostname() # Get local machine name -sock.bind((host, port)) # Bind to the port -sock.listen(5) # Now wait for client connection. +port = 12312 # Reserve a port for your service. +sock = socket.socket() # Create a socket object +host = socket.gethostname() # Get local machine name +sock.bind((host, port)) # Bind to the port +sock.listen(5) # Now wait for client connection. print('Server listening....') while True: - conn, addr = sock.accept() # Establish connection with client. + conn, addr = sock.accept() # Establish connection with client. print('Got connection from', addr) data = conn.recv(1024) print('Server received', repr(data)) From ce9284fe0b185ccc83a47e6ca6f4289db8dcd23d Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 6 Aug 2019 22:44:03 -0400 Subject: [PATCH 16/19] remove closing formalities --- file_transfer_protocol/server.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index e808e54d61ac..46ea9e1da214 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -13,19 +13,18 @@ while True: conn, addr = sock.accept() # Establish connection with client. - print('Got connection from', addr) + print(f"Got connection from {addr}") data = conn.recv(1024) - print('Server received', repr(data)) + print(f"Server received {data}") with open(filename,'rb') as out_file: data = out_file.read(1024) while (data): conn.send(data) - print('Sent ',repr(data)) + print(f"Sent {data}") data = out_file.read(1024) print('Done sending') - conn.send(b'Thank you for connecting') conn.close() if ONE_CONNECTION_ONLY: # This is to make sure that the program doesn't hang while testing break From 6783c8a26c9b8b2c1cf716088faa3dcc3e6c6343 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 7 Aug 2019 09:13:44 -0400 Subject: [PATCH 17/19] swap in and out_file --- file_transfer_protocol/client.py | 4 ++-- file_transfer_protocol/server.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index 7dec25f5bd1b..43cc7ceaf1ef 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -7,7 +7,7 @@ sock.connect((host, port)) sock.send(b'Hello server!') -with open('Received_file', 'wb') as in_file: +with open('Received_file', 'wb') as out_file: print('File opened') print('Receiving data...') while True: @@ -15,7 +15,7 @@ print(f"data={data}") if not data: break - in_file.write(data) # Write data to a file + out_file.write(data) # Write data to a file print('Successfully got the file') sock.close() diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index 46ea9e1da214..e451b9937efe 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -17,12 +17,12 @@ data = conn.recv(1024) print(f"Server received {data}") - with open(filename,'rb') as out_file: - data = out_file.read(1024) + with open(filename,'rb') as in_file: + data = in_file.read(1024) while (data): conn.send(data) print(f"Sent {data}") - data = out_file.read(1024) + data = in_file.read(1024) print('Done sending') conn.close() From 4cad0bafd07e255a0c77869b18c194360d35bb84 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 7 Aug 2019 09:24:43 -0400 Subject: [PATCH 18/19] f-string --- file_transfer_protocol/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index e451b9937efe..0ae7d84078cc 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -21,7 +21,7 @@ data = in_file.read(1024) while (data): conn.send(data) - print(f"Sent {data}") + print(f"Sent {data!r}") data = in_file.read(1024) print('Done sending') From 3d9639b0055e09daf6433a3812a4d3ca625c023d Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 7 Aug 2019 09:29:00 -0400 Subject: [PATCH 19/19] if __name__ == '__main__': --- file_transfer_protocol/client.py | 37 +++++++++++----------- file_transfer_protocol/server.py | 53 ++++++++++++++++---------------- 2 files changed, 46 insertions(+), 44 deletions(-) diff --git a/file_transfer_protocol/client.py b/file_transfer_protocol/client.py index 43cc7ceaf1ef..f404546d7765 100644 --- a/file_transfer_protocol/client.py +++ b/file_transfer_protocol/client.py @@ -1,22 +1,23 @@ -import socket # Import socket module +if __name__ == '__main__': + import socket # Import socket module -sock = socket.socket() # Create a socket object -host = socket.gethostname() # Get local machine name -port = 12312 + sock = socket.socket() # Create a socket object + host = socket.gethostname() # Get local machine name + port = 12312 -sock.connect((host, port)) -sock.send(b'Hello server!') + sock.connect((host, port)) + sock.send(b'Hello server!') -with open('Received_file', 'wb') as out_file: - print('File opened') - print('Receiving data...') - while True: - data = sock.recv(1024) - print(f"data={data}") - if not data: - break - out_file.write(data) # Write data to a file + with open('Received_file', 'wb') as out_file: + print('File opened') + print('Receiving data...') + while True: + data = sock.recv(1024) + print(f"data={data}") + if not data: + break + out_file.write(data) # Write data to a file -print('Successfully got the file') -sock.close() -print('Connection closed') + print('Successfully got the file') + sock.close() + print('Connection closed') diff --git a/file_transfer_protocol/server.py b/file_transfer_protocol/server.py index 0ae7d84078cc..92fab206c1a1 100644 --- a/file_transfer_protocol/server.py +++ b/file_transfer_protocol/server.py @@ -1,33 +1,34 @@ -import socket # Import socket module +if __name__ == '__main__': + import socket # Import socket module -ONE_CONNECTION_ONLY = True # Set this to False if you wish to continuously accept connections + ONE_CONNECTION_ONLY = True # Set this to False if you wish to continuously accept connections -filename='mytext.txt' -port = 12312 # Reserve a port for your service. -sock = socket.socket() # Create a socket object -host = socket.gethostname() # Get local machine name -sock.bind((host, port)) # Bind to the port -sock.listen(5) # Now wait for client connection. + filename='mytext.txt' + port = 12312 # Reserve a port for your service. + sock = socket.socket() # Create a socket object + host = socket.gethostname() # Get local machine name + sock.bind((host, port)) # Bind to the port + sock.listen(5) # Now wait for client connection. -print('Server listening....') + print('Server listening....') -while True: - conn, addr = sock.accept() # Establish connection with client. - print(f"Got connection from {addr}") - data = conn.recv(1024) - print(f"Server received {data}") + while True: + conn, addr = sock.accept() # Establish connection with client. + print(f"Got connection from {addr}") + data = conn.recv(1024) + print(f"Server received {data}") - with open(filename,'rb') as in_file: - data = in_file.read(1024) - while (data): - conn.send(data) - print(f"Sent {data!r}") - data = in_file.read(1024) + with open(filename,'rb') as in_file: + data = in_file.read(1024) + while (data): + conn.send(data) + print(f"Sent {data!r}") + data = in_file.read(1024) - print('Done sending') - conn.close() - if ONE_CONNECTION_ONLY: # This is to make sure that the program doesn't hang while testing - break + print('Done sending') + conn.close() + if ONE_CONNECTION_ONLY: # This is to make sure that the program doesn't hang while testing + break -sock.shutdown(1) -sock.close() + sock.shutdown(1) + sock.close()