Задача: В приложении, написанном на C#, вводится значение времени в интервале [00:00:00, 24:00:00)
и заносится в переменную типа TimeSpan
. Затем это значение должно передаться по сети и правильно прочитаться приложением, написанным на С++.
Вопрос 1: В каком виде передавать TimeSpan
? (У меня оно пока что передается как double TimeSpan.TotalHours).
Вопрос 2: Как и с помощью каких средств прочитать это значение на C++?
P.S. В языке C++ я чайник.
UPD. Еще есть идея передавать отдельно часы минуты и секунды.
Передавать можно как угодно, главное, чтобы на приёмной стороне можно было восстановить исходное значение. Можно хоть double
, представляющий кол-во часов, но проще всего это сделать, оперируя целыми int
(или даже uint
) числами, так меньше шансов нарваться на какие-то ошибки округления и прочие проблемы несовместимости представлений чисел с плавающей точкой (хотя в большинстве своём всё равно везде опираются на IEEE-754).
Если временной интервал преобразован в целое число, которое соответствует кол-ву секунд (если нужна большая точность, например, миллисекунды, целый тип можно расширить), то после перевода, соблюдения порядка байт и передачи по сети на приёмной (C++) стороне можно написать нечто подобное (в предположении, что число разместили в 32-разрядный unsigned int
):
#include <cstdint>
std::uint32_t sec = 0;
if (sizeof(sec) != recv(sockfd, &sec, sizeof(sec), 0))
{
// в sec получено кол-во секунд
}
В качестве альтернативного варианта, который будет исключать влияние порядка байт, можно предложить передачу интервала как строки, например "12:34:56"
. Правда в таком случае размер передаваемых данных возрастёт, однако, принять и передать такую строку будет проще между различными архитектурами, которые могут участвовать в обмене по сете.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Необходимо вывести сообщение в админке wordpress при сохранении страницы, нашел отличный пример класса, но не могу заставить его работать, вот...
Создал дополнительное поле в Wordpress через плагин ACFВ archive