File transfer example

This commit is contained in:
Mark Qvist 2018-04-26 01:25:41 +02:00
parent 77da69c37d
commit 712273dd14

View File

@ -83,6 +83,8 @@ def client_connected(link):
if os.path.isdir(serve_path): if os.path.isdir(serve_path):
RNS.log("Client connected, sending file list...") RNS.log("Client connected, sending file list...")
link.link_closed_callback(client_disconnected)
# We pack a list of files for sending in a packet # We pack a list of files for sending in a packet
data = umsgpack.packb(list_files()) data = umsgpack.packb(list_files())
@ -109,6 +111,9 @@ def client_connected(link):
RNS.log("Client connected, but served path no longer exists!", RNS.LOG_ERROR) RNS.log("Client connected, but served path no longer exists!", RNS.LOG_ERROR)
link.teardown() link.teardown()
def client_disconnected(link):
RNS.log("Client disconnected")
def client_request(message, packet): def client_request(message, packet):
global serve_path global serve_path
if message in list_files(): if message in list_files():
@ -235,7 +240,7 @@ def download(filename):
# to select which files to download, or quit # to select which files to download, or quit
menu_mode = None menu_mode = None
def menu(): def menu():
global server_files global server_files, server_link
# Wait until we have a filelist # Wait until we have a filelist
while len(server_files) == 0: while len(server_files) == 0:
time.sleep(0.1) time.sleep(0.1)
@ -266,6 +271,9 @@ def menu():
except: except:
pass pass
if should_quit:
server_link.teardown()
# Prints out menus or screens for the # Prints out menus or screens for the
# various states of the client program. # various states of the client program.
# It's simple and quite uninteresting. # It's simple and quite uninteresting.
@ -393,6 +401,8 @@ def link_closed(link):
RNS.log("The link was closed by the server, exiting now") RNS.log("The link was closed by the server, exiting now")
else: else:
RNS.log("Link closed, exiting now") RNS.log("Link closed, exiting now")
time.sleep(1.5)
os._exit(0) os._exit(0)
# When RNS detects that the download has # When RNS detects that the download has