Клиент и сервер могут читать и писать сообщения в любом порядке, и это полностью определяется приложением c. Так что, отвечая на ваш вопрос, клиент на какое-то время блокируется, возможно, после истечения времени ожидания сообщение падает на пол.
Обработка потоков на стороне клиента и на сервере определяется приложением c. Поскольку оба потока независимы, клиент и сервер могут читать и записывать сообщения в любом порядке. Например, сервер может подождать, пока он не получит все клиентские сообщения, прежде чем писать свои сообщения, или сервер и клиент могут сыграть в «пинг-понг» - сервер получает запрос, затем отправляет ответ, затем клиент отправляет другой запрос на основе ответа и т. д.
Посмотрите, как это объясняется в официальной документации gRP C. Также примите во внимание, что есть специфичные для языка данные c, поэтому убедитесь, что вы проверили справочную документацию на ваш язык.
https://grpc.io/docs/guides/concepts/#rpc -life-cycle https://grpc.io/docs/guides/concepts/#synchronous -vs асинхронный