Показать сообщение отдельно
  #5  
Старый 11.10.2011, 14:40
Lucky192 Lucky192 вне форума
Прохожий
 
Регистрация: 04.10.2011
Сообщения: 28
Репутация: 1351
По умолчанию

В принципе нормально у вас все написано - у меня пакеты отправляются, ошибок нет. Но есть нюансы:
1. Зачем лишний байт отправляете (103 вместо 102) - опечатка?
2. Лучше вместо SendBuffer(pointer(Package)^, 102) все-таки написать SendBuffer(Package[0], length(Package)), хотя результат тот же останется.
3. Если у вас сервер, у него возможно несколько подсетей/сетевых интерфейсов. Так вот и Windows XP и Windows 7 некорректно работают с широковещательными пакетами в таких случаях. Компонент Indy эту ошибку не исправляет. Нужно вручную перечислить доступные интерфейсы, узнать широковещательный адрес для каждого в отдельности и слать несколько широковещательных пакетов, указывая конкретный широковещательный адрес для подсети. В противном случае все широковещательные пакеты уйдут только в одну подсеть.

P.S. Лучше уберите блоки exception вообще - из-за них не видно кода ошибки, а без него все разговоры - гадание на кофейной гуще. Ваши сообщения "...при генерации...", "...при открытии..." ясности не добавляют, скорее наоборот. И блок finally на удаление клиента не вижу...
Ответить с цитированием