diff options
Diffstat (limited to 'doc/protocol.txt')
-rw-r--r-- | doc/protocol.txt | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/doc/protocol.txt b/doc/protocol.txt new file mode 100644 index 0000000..20378a0 --- /dev/null +++ b/doc/protocol.txt @@ -0,0 +1,163 @@ +Next File Transfer Protocol +=========================== + +Introduction +------------ + +Next File Transfer uses a simple protocol where a 2 character code defines +a message type. + +The following are standard compents of a message: + + +------------+------------------------------------------------------+ + | <NNNNN> | 5 ASCII digits making up a zero-padded number | + +------------+------------------------------------------------------+ + | <N bytes> | A stream of N bytes | + +------------+------------------------------------------------------+ + + +Put File +-------- + +The format of the message from the client is: + + +------------+------------------------------------------------------+ + | PF | Put file command | + +------------+------------------------------------------------------+ + | <NNNNN> | Length of filename | + +------------+------------------------------------------------------+ + | <N bytes> | The filename | + +------------+------------------------------------------------------+ + | <NNNNN> | Length of the data for the file | + +------------+------------------------------------------------------+ + | <N bytes> | 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: + + +------------+------------------------------------------------------+ + | GF | Get file command | + +------------+------------------------------------------------------+ + | <NNNNN> | Length of filename | + +------------+------------------------------------------------------+ + | <N bytes> | The filename | + +------------+------------------------------------------------------+ + +The server responds with either: + + +------------+------------------------------------------------------+ + | OK | The command completed OK. The file contents will | + | | follow. | + +------------+------------------------------------------------------+ + | <NNNNN> | Length of the following data | + +------------+------------------------------------------------------+ + | <N bytes> | The data from from the file | + +------------+------------------------------------------------------+ + +or: + + +------------+------------------------------------------------------+ + | !E | There was an error reading the file | + +------------+------------------------------------------------------+ + + +Change Directory +---------------- + +The format of the message from the client is: + + +------------+------------------------------------------------------+ + | CD | Change directory command | + +------------+------------------------------------------------------+ + | <NNNNN> | Length of pathname | + +------------+------------------------------------------------------+ + | <N bytes> | 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: + + +------------+------------------------------------------------------+ + | MD | Create directory command | + +------------+------------------------------------------------------+ + | <NNNNN> | Length of pathname | + +------------+------------------------------------------------------+ + | <N bytes> | The pathname | + +------------+------------------------------------------------------+ + +The server responds with either: + + +------------+------------------------------------------------------+ + | OK | The command completed OK | + +------------+------------------------------------------------------+ + +or: + + +------------+------------------------------------------------------+ + | !E | There was an error creating the directory | + +------------+------------------------------------------------------+ + + +List Files +---------- + +The format of the message from the client is: + + +------------+------------------------------------------------------+ + | LS | List files command | + +------------+------------------------------------------------------+ + +The server responds with either: + + +------------+------------------------------------------------------+ + | OK | The command completed OK | + +------------+------------------------------------------------------+ + | <NNNNN> | The number of filenames | + +------------+------------------------------------------------------+ + | <NNNNN> | Length of filename 1 | + +------------+------------------------------------------------------+ + | <N bytes> | Filename 1 | + +------------+------------------------------------------------------+ + ... above 2 fields repeated ... + +------------+------------------------------------------------------+ + | <NNNNN> | Length of filename N | + +------------+------------------------------------------------------+ + | <N bytes> | Filename N | + +------------+------------------------------------------------------+ + +or: + + +------------+------------------------------------------------------+ + | !E | There was an error reading the directory | + +------------+------------------------------------------------------+ |