Я делаю свое собственное клиент-серверное приложение на C, которое реализует протокол TFTP.После прочтения RFC TFTP и создания простого клиент-серверного приложения на сокете, я немного запутался в том, как создавать конкретные пакеты, которые должны быть созданы для протокола TFTP.
Например,Пакет WRQ должен быть таким:
2 bytes string 1 byte string 1 byte
------------------------------------------------
| Opcode | Filename | 0 | Mode | 0 |
------------------------------------------------
, который извлекается из официального RFC.
У меня есть .h, в котором я определяю все структуры для пакетов, но я 'я не уверен, что я делаю правильно, и мне не повезло, что я нашел информацию в Интернете.
Структура, которую я создал для этого пакета:
struct WRQ {
signed short int opcode; //2 bytes
char * filename; // N bytes
char zero_0; // 1 byte
char * mode; // N Bytes
char zero_1; // 1 byte
};
У меня два сомнения:
а) когда я делаю sizeof (struct WRQ), он возвращает 20 байтов.Который не тот размер, который я хочу получить.Почему это происходит?
б) Как мне определить строки?потому что я хочу, чтобы сервер сам получал строку, и, я думаю, таким образом, он получит указатель на строку на клиентском компьютере.
Я надеюсь, что все ясно, и вы могли бы помочь мне, потому чтоЯ застрял на данный момент!