Как отправить одним байтом значения дня(1-31)

128
25 января 2020, 22:10

Программа клиент должна отослать на сервер значения:

1 байт - значение дня (1-31) первой даты, 
1 байт - значение месяца (1-12) первой даты, 
2 байта - unsigned short, год (0-9999), в СЕТЕВОМ порядке байтов, 
1 байт - значение часов (hh, 0-23), 
1 байт - значение минут (mm, 0-59), 
1 байт - значение секунд (ss, 0-59), 

И у нас есть функция для отправки:

int send(int sockfd, const void *buf, int len, int flags);

Я понимаю,что void'овый указатель может быть приведен к какому-либо другому типу. Например, char*. Тогда я смогу отправлять строки с нужной информацией. Например, 24.05.2014.

Как отправить одним байтом двузначное 24?Если отправлять 24 строкой, то будет 2 байта и уже нужно сетевой порядок соблюдать.Может нужно отправлять посимвольно?Тогда всё равно отправятся два байта. Или задание "имело в виду" отправлять один байт для одного send? Тогда будет два send для даты 24 и всё равно не в один байт было отправлено значения дня.

А если это месяц или число, у которого незначащий ноль спереди, как для 05 месяца. Тогда нуль тоже нужно передавать?

Еще один вопрос насчёт сетевого порядка:у нас есть функции host-to-network-short и host-to-network-long. Как проверить, верно ли перевелось значение?

Answer 1

Как отправить одним байтом двузначное 24?

А где в задании сказано, что передавать нужно по одному байту?! Уверен - нет такого. Поэтому, не мудрствуйте лукаво, а поступайте по классике:

struct buffer {
    unsigned char day_of_month;
    unsigned char month;
    unsigned short year;
    unsigned char hour:
    unsigned char minute;
    unsigned char sec
} buffer;
size_t ll;
buffer.day_of_month = ...;
. . .
buffer.sec = ...;

ll = send(sockfd, buffer, sizeof(buffer), 0);
}
READ ALSO
Как реализовать пропуск второго эл-та пары, если он не рядом стоит?

Как реализовать пропуск второго эл-та пары, если он не рядом стоит?

Нужно написать код, который будет искать количество пар одинаковых элементов, чтоб их считало только один раз

113
Не работает функция подсчета слов в строке при работе с файлом

Не работает функция подсчета слов в строке при работе с файлом

Необходимо посчитать количество слов в каждой строке для дальнейших действийФункция работает с обычной строкой, а вот при передаче ей буфера,...

110
Что сделать чтобы в конструкторе не было много параметров

Что сделать чтобы в конструкторе не было много параметров

Всем привет! Есть такой конструктор который считывает информацию о квартире:

135