Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема при отправки коллекции, помогите... 
V
    Опции темы
Alehandr
Дата 9.8.2006, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.8.2006

Репутация: нет
Всего: нет



Всем привет.
Проблема в следущем на клиентском прижение заполняется коллекция TStrings в которой содержится около 19-20 записей. Затем данная коллекция отправляется на сервер, там она принемается но не полностью последнии строки коллекции не доходят в чем можжет быть проблема. Подскажите пожалуйста.
Зарание спасибо
PM MAIL   Вверх
Fedia
Дата 9.8.2006, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: нет
Всего: 13



Alehandr, Слышал про ошибку в 17-й строке ?
Уточни, что за сервер, способ отправки и приемки и т.д.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Alehandr
Дата 9.8.2006, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.8.2006

Репутация: нет
Всего: нет



Использую IdTCPServer & IdTCPClient. отправляю с клиента 
Client.WriteStrings(DataInfStr, True);
а на сервере получаю
AThread.Connection.ReadStrings(DataList);
так вот не все значения коллекции TStrings доходят последнии записи в коллекции пустые хотя у клиента они заполнены. Так вот вчем может быть проблема.
PM MAIL   Вверх
Snowy
Дата 9.8.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



- Остальные строки соответствуют переданным?
- В строках нигде не используется символ #10?
- Сколько строк примерно не доходит? % от общего кол-ва?
PM MAIL   Вверх
Alehandr
Дата 9.8.2006, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.8.2006

Репутация: нет
Всего: нет



Вообщем из переданных 19 строк доходи 16 остальные пустые, строки простые только текст, пробывал передавать с размером не помагает. Вообщем говоря не доходя последнии строки около 3-4. В чем может быть проблема. Да использую Indy 9
PM MAIL   Вверх
Snowy
Дата 9.8.2006, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Попробуй передавать не текст, а данные:
Код

// отправка
// tcp: TIdTCPClient;
// sl: TStringList;
begin
  tcp.WriteInteger(Length(sl.Text));
  tcp.Write(sl.Text);
end;

// Приём 
// tcp: TIdTCPConnection;
// sl: TStringList;
var
  sz: integer;
  s:  string;
begin
  sz := tcp.ReadInteger;
  SetLength(s, sz);
  tcp.ReadBuffer(s[1], sz);
  sl.Text := s;
end;


Добавлено @ 10:53 
Цитата(Alehandr @  9.8.2006,  10:36 Найти цитируемый пост)
Вообщем говоря не доходя последнии строки около 3-4. В чем может быть проблема.
Также вероятна причина: сокет асинхронный и ты рвёшь соединение до того, как отправились все данные.
Попробуй перед дисконнектом сделать
Код
tcp.FlushWriteBuffer
 или на время отложить дисконнект.
PM MAIL   Вверх
Alehandr
Дата 9.8.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.8.2006

Репутация: нет
Всего: нет



Все вопрос решен спасибо за помощь.
Проверил все оказалось в одной строке был символ #,  убрал из строки и нормально. 
Да ну будущее из-зи чего так себе ведет при передачи если встречает символ # то все он теряется.
PM MAIL   Вверх
Snowy
Дата 9.8.2006, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Передача, как данные, а не как строки проходит быстрее и не подвержена таким глюкам.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.