I've got a PC program receiving data from 20 custom hardware boxes via UDP. Each of these boxes continually sends UDP messages to a single UDP socket on the PC. The messages all contain 10 - 150 bytes of data, and each unit sends about 20 messages in 12 seconds.
Testing shows that some messages are being missed by the PC. Fewer boxes on the network results in fewer missed messages.
The long term solution is to buffer data in the hardware, and let the PC retrieve data as required via TCP, but I need to solve/minimise the missing message problem in the short term until that solution can be deployed. Ideas include: - upgrading the PC - filtering out unnecessary messages before transmission - combining separate UDP messages in the hardware into a single bigger one - using multiple sockets in the PC to receive messages
I'm looking for feedback on these ideas, plus any we might have missed.
The receiving program is a C++Builder program running Indy9.