Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с постом сообщений по TTcpSocket в D7 [D7, Win2k, WinXP]


empty ©   (2004-05-24 16:05:00) 

Пояснение к проблемме:

Создано тестовое приложение для передачи данных по сети для проверки передачи данных. Со свойством в TTcpServer и TTcpClient (BlockMode=bmNonBlocking) "асинхронная передача данных". При передачи данных возникают события которые свойственны для данных компонентов в часности у серверного компонента OnAccept, в нём необходимо выполнить операцию чтения из клиента информации. Т.е. кодом вышлядит примерно так :

procedure Form1.TcpServerAccept( Sender : TObject, ClentSocket : TTcpClient);

Var Mes : String;

begin
While MSG<>'' do
  begin
   Mes:=ClientSocket.ReadLn;
  end;  
end;

При этом в переменную постоянно присваивается значения которые в такой же последовательности были присланы от слиента к серверу. Так вот это событие возникает без проблем, но, !когда форма активна! в переменную не присваивается значение текста посланого от клиента и при изменения активности формы, сразу начинают приходить все сообщения которые были посланы. Тоесть при разнице свойства Active на форме с компонентом (а точнее приложении) чувствуется разница в доставке сообщения. Тоесть событие происходит а буфер сообщений постоянно пустой, и только при незначительных изменениях он начинает заполнятся, при каких мне сложно отследить и в принципе не представляется возможным... Прошу подсказать в чём может быть причина при изменении этого свойства.

С уважением Денис. (empty)


nomshar   (2004-05-26 15:48:00) [1]

Слушай, ты во-первых, зачем в обработчике OnAccept заводишь цикл? У тебя же вся программа нафиг встанет.
А во-вторых. Дай код. Хотя там ничего сложного и можно в принципе обойтись и дельфишными компонентами.


tesseract   (2004-05-25 09:23:00) [2]

Используй idTcpServer, стандартные дельфёвые компоненты глючат сильно. Заманаешься. Там вообще сложно понять что и когда ты получаешь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо