У меня есть клиент, который подключается к серверу и пытается получить send()
некоторые данные. Однако есть два типа данных, которые мне нужно отправить, скажем, информацию о погоде и текущем времени (просто примеры).Использование send() дважды для отправки различных типов данных
Проблема заключается в: В клиенте я звоню send()
дважды, один, чтобы отправить информацию о погоде и один текущее время, и на сервере я зацикливание recv()
.
Что я ожидал (и построил мой код) является то, что первый раз, когда сервер вызывает recv()
это только получить информацию о погоде и на второй вызов recv()
время, однако только один вызов recv()
достаточно для обоего данных, которые должны быть получены в том же буфере.
В то время как это может быть и не так, проблема в том, что я построил свою программу вокруг этого предположения, и я просто хотел знать, есть ли способ достичь того, что я хочу (я думал о sleep()
между двумя send()
но это может быть ненадежным), так что я могу сэкономить время на переписывание кода.
Если кто-то знает способ, это сэкономит мне некоторое время, поэтому я ценю любую помощь.
Хорошо, по крайней мере, я знаю, что я не трачу свое время, я собираюсь с заголовками и переписываю это. Благодарю. –
Подсказка заголовков. Хорошим заголовком могут быть все байты ASCII, например. [SOH] "4096" [ETX] binaryData ..., где данные составляют 4096 байт. Заголовок, подобный этому, не связан с ним. Все машины читают и понимают это, и нет никакого разумного ограничения на размер данных, поскольку он заканчивается [ETX]. –
байты должны быть такими: 0x01 0x1000 0x03? или нужны котировки? –