Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.01.2008, 22:48
Аватар для qip
qip qip вне форума
Прохожий
 
Регистрация: 18.01.2008
Сообщения: 4
Репутация: 10
По умолчанию Организация основного потока

В данный момент пишу чат клиент (основу для бота) для DC++ на основе DCD (2002 года)
Почти всё что касалось протокола довёл до ума, кроме огранизации основного потока.
Метод потока Execute выполняет парсинг накопившихся в буфере пакетов в цикле
Код:
repeat
...
until terminated;
а заполнение самого буфера происходит в методе сокета fSocket_OnRead
Код:
procedure TDCClientThread.fSocket_OnRead(Sender: TObject; Socket: TCustomWinSocket);
var tmp : string;
begin
 tmp := socket.receivetext;
 fbuffer := fbuffer + tmp;
end;
Поток создаётся при подключении к серверу, и уничтожается при отключении.

Так вот сутью проблемы является то, что данная конструкция потока, мягко говоря, нестабильна, т.к. при большом количестве пакетов не редко встречаются случаи их "перемешки", т.е. в тексте одного не до конца считанного пакета появляется текст другого.
Какие есть идеи реогранизации этой конструкции?

P.S. в качестве сокета TClientSocket

Последний раз редактировалось qip, 18.01.2008 в 22:55.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter