Получение сообщений переменной длины в приложении сокета Delphi tidtcpserver - PullRequest
0 голосов
/ 09 февраля 2020

Мне нужен самый надежный способ отправки сообщений от tidtcpclient на tidtcpserver. Я использую Delphi с Indy 10. Сообщения будут XML сообщениями, которые могут содержать символы CR и LF.
Некоторые практики отправляют заголовок, сначала сообщающий количество байтов или длину сообщения. Сервер проверяет заголовок и читает количество символов рядом. Затем серверное приложение ожидает получения этого количества символов на этом сервере. Это приемлемо для многопоточного и многопользовательского приложения на сервере. Следующее полученное сообщение может быть от другого клиента и иметь другую длину. Каков наилучший способ сделать это для среды, которая может иметь от 200 до 500 соединений? К вашему сведению: ранее я делал сообщения readln и writeln, но это очень ненадежно, так как символы CR LF могут быть включены в строку.

...