Проблема с подключением. Еще ожидаю возврата каретки - PullRequest
0 голосов
/ 17 февраля 2011

У меня проблема с методом TCpindy connection.readln, у меня не было контроля над отправкой данных на другой стороне, при использовании метода Readln в зависании приложения на стороне сервера (потому что получение данных не содержит возврат каретки), яПопытка метода readstring, но безуспешно. Есть ли какое-либо предложение, чтобы решить эту проблему, я ищу другой компонент, а не indy,

Мне нужно получить данные от другого клиента (tcp-соединение) без какой-либо информации о размере приемаданные и без возврата каретки в конце каждого кадра.

1 Ответ

1 голос
/ 17 февраля 2011

Вы должны знать, как данные отправляются, чтобы правильно их прочитать. TCP является байтовым потоком, отправителю нужно как-то указать, где заканчивается одно сообщение и начинается следующее, либо:

  1. префикс каждого сообщения с его длина

  2. размещение уникальных разделителей между каждое сообщение

  3. пауза во времени между каждым сообщением

Indy может справиться со всеми этими возможностями, но вам нужно определить, какой из них фактически используется первым.

В худшем случае scenerio, используйте метод CurrentReadBuffer(), который возвращает строку любого необработанного байта, доступного в данный момент.

...