Есть сервер (cgate), написанный на java. К нему можно цепляться по TCP, и в telnet-стиле обмениваться текстовыми командами.
В попытках спарить этот сервер с node.js, заметил, что сообщения, приходящие с сервера, приходят всегда целыми (в спецификации последняя строка сообщения имеет вид навроде «200 OK\r\n»)
Я плохо представляю как сокеты работают на низком уровне. И возник такой вопрос:
как клиентский сокет узнаёт, что прием данных завершен, что пора перестать читать из сокета и отдать принятое сообщение мне в юзерспэйс?
Иными словами, если сервер отправил мне данные одним куском, могу ли я быть уверен, что мне придет этот кусок в целости, а не последовательностью из нескольких кусков? Ну или несколько сообщений придут одним куском