| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > NetMessageBufferSend и зависание |
| Автор: Лис 19.9.2005, 15:16 |
| Доброго времени суток. Написал программу, которая использует NetMessageBufferSend для передаи сообщений. Столкнулся с проблемой, что в том случае, если IP адрес введен несуществующий, то программа зависает. Я так понимаю, ждет ответа получателя. Подскажите, пожалуйста, можно ли как-то поставить лимит на время ожидания ответа. |
| Автор: p0s0l 20.9.2005, 01:16 | ||
Можно попробовать в поток сунуть:
|
| Автор: Лис 20.9.2005, 11:37 | ||
Спасибо за ответ. Вот что у меня получилось:
Программа вываливается в EAccessViolation на строке 10. Никак не могу понять, почему. Полхоже, NetSend здесь ни при чем. Ее можно всю закомментировать - та же ошибка. |
| Автор: p0s0l 20.9.2005, 20:25 |
| Если взаимодействуешь с VCL, то надо использовать TThread и метод Synchronize, либо в конструктор потока передавать нужные данные... Но я сейчас подумал немного и решил, что я тебе неправильно насоветовал... Если уничтожать поток насильно, то не всё освободится скорее всего. Сама NetMessageBufferSend может временно память выделять, открывать какие-нибудь объекты, уничтожив поток, эта память останется висеть ничейной... Вобщем, не очень хорошо. Поэтому лучше всего перед посылкой сообщения проверить существование этого IP-адреса, пропинговать, смотри соседнюю тему... |
| Автор: Лис 21.9.2005, 11:35 |
| У меня была такая идея, но хотел попробовать с потоками разобраться. Спасибо за помощь. |