Когда я использую TIdUDPServer по адресу ActiveXForm, событие OnUDPRead сервера Udp не запускается.
Если я проверяю статус IdUDPServer.Active, это «true». Но почему OnUDPRead никогда не срабатывал?Udp Server в форме ActiveX
ответ
TIdUDPServer
- многопоточный компонент. Каждый элемент в своей коллекции Bindings
прослушивает данные в своем рабочем потоке.
Свойства TIdUDPServer.ThreadedEvent
ложно по умолчанию, что означает, что каждый Binding
вызывает OnUDPRead
события в контексте главного потока пользовательского интерфейса путем вызова TThread.Synchronize()
, который не работает внутри DLL, если как DLL и EXE не компилируются с временем выполнения пакетов поэтому они имеют общую копию RTL. В противном случае DLL будет иметь свою собственную отдельную копию RTL, чем RTL основного EXE (при условии, что EXE использует VCL вообще). Если не включены пакеты Runtime Packages, основной EXE должен будет явным образом вызывать в DLL периодическую пересылку очереди сообщений DLL для запросов Synchronize()
, поскольку они не будут отображаться в очереди сообщений EXE (если EXE будет даже знать, как обрабатывать их, если они сделал).
Если вы установили ThreadedEvent
истину, Synchronize()
не будет использоваться, таким образом OnUDPRead
событие будет срабатывать в контексте каждой Binding
нити. Вам просто нужно убедиться, что ваш код обработчика OnUDPRead
написан как потокобезопасный.
- 1. Dart UDP client/server
- 2. C++ Simple UDP Server
- 3. wxPython threaded UDP server
- 4. udp chat server в c
- 5. UDP server reset
- 6. Java UDP Server Programming
- 7. UDP winsock server C++
- 8. Bootstrap Netty UDP Server
- 9. Twisted UDP Server - демон?
- 10. Haproxy loadbalancing udp server
- 11. Зарегистрируйте ActiveX SERVER в Linux через Wine
- 12. stop thread with udp server
- 13. Множество клиентов Twisted UDP Server
- 14. echo server не отвечает udp
- 15. java udp server 100% cpu
- 16. udp android server over wifi
- 17. UDP Server перестает получать данные
- 18. UDP Client Server двойное сообщение
- 19. Программирование сокетов: UDP Client-Server в C
- 20. 2-way server-client UDP в java
- 21. udp server отвечает на основании запроса, полученного от клиента udp
- 22. Server-side C# и ActiveX C#
- 23. ActiveX Control в ASP.NET
- 24. Зависимости ActiveX в Access
- 25. Async UDP Server с Twisted и QT4
- 26. java client python server send udp data
- 27. JAVA UDP Server Не удается получить пакет
- 28. C# UDP Server - Keep-Alive Packets
- 29. Python icmp socket server (not tcp \ udp)
- 30. tcp и udp echoclient server using select
благодарит за вашу помощь. Связанный [вопрос] (http://stackoverflow.com/questions/7935870/delphi-thread-not-executing-in-activex-form-but-does- в другом месте). возможно, это помогает кому-то ... – SimaWB