Что касается RFC TFTP, пакет RRQ / WRQ должен быть таким:
2 bytes string 1 byte string 1 byte
------------------------------------------------
| Opcode | Filename | 0 | Mode | 0 |
------------------------------------------------
Режим может быть "netascii", "octet" (эквивалент двоичного) или "mail".Дело в том, что netascii - это 8 букв, в октете - 5, а в почте - 4.
Я создаю свой пакет в моем клиенте следующим образом:
paq = struct.pack('!H'+str(len(fileName))+'sB'+str(len(mode))+'sB', 02, fileName, 0,mode, 0)
И затем я отправляю пакет всервер, так что сервер знает, чего ожидать (если RRQ или WRQ).
Дело в том, что я не знаю, как распаковать пакет, если я не знаю длины строк на стороне сервера... Я имею в виду, что единственным, кто знает длину файла и длину режима, является клиент, поскольку именно он создает пакет.
Мне нужна помощь в распаковке этого пакета на стороне сервера.Должен ли я отправлять длины на сервер перед отправкой пакета RRQ / WRQ, чтобы я знал формат, используемый при распаковке, или есть какой-либо другой способ?
Спасибо!