From 4f52974cd5bd5a5a749a90408f4ccf7fe7c8fc1c Mon Sep 17 00:00:00 2001 From: Ian C Date: Fri, 28 Feb 2020 11:51:43 +0000 Subject: Added initial protocol documentation. --- doc/protocol.md | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 doc/protocol.md (limited to 'doc/protocol.md') diff --git a/doc/protocol.md b/doc/protocol.md new file mode 100644 index 0000000..b804df7 --- /dev/null +++ b/doc/protocol.md @@ -0,0 +1,89 @@ +Next File Transfer Protocol +=========================== + +Introduction +------------ + +Next File Transfer uses a simple protocol where a single character defines +a message type. + +The following are standard compents of a message: + +> 5 ASCII digits making up a zero-padded number. +> A stream of N bytes. + + +Put File +-------- + +The format of the message from the client is: + +> A Put file command +> Length of filename +> The filename +> Length of the data for the file. +> The data. + +The server responds with either: + +> OK The command completed OK + +or: + +> !E There was an error writing the file. + + +Get File +-------- + +The format of the message from the client is: + +> B Put file command +> Length of filename +> The filename + +The server responds with either: + +> OK The command completed OK. The file contents will follow. +> The length of the following data. +> The data frin from the file. + +or: + +> !E There was an error reading the file. + + +Change Directory +---------------- + +The format of the message from the client is: + +> C Change directory command +> NNNNN Length of pathname +> The pathname + +The server responds with either: + +> OK The command completed OK + +or: + +> !E There was an error changing to the directory + + +Create Directory +---------------- + +The format of the message from the client is: + +> D Create directory command +> NNNNN Length of pathname +> The pathname + +The server responds with either: + +> OK The command completed OK + +or: + +> !E There was an error creating the directory -- cgit v1.2.3