|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Организация основного потока
В данный момент пишу чат клиент (основу для бота) для DC++ на основе DCD (2002 года)
Почти всё что касалось протокола довёл до ума, кроме огранизации основного потока. Метод потока Execute выполняет парсинг накопившихся в буфере пакетов в цикле Код:
repeat ... until terminated; Код:
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. |