voor een project ben ik bezig met een udp server.
hierbij komt via een UDP pakket data binnen max (1500bytes) per keer. vanaf ong 200 verschillende devices.
al die devices hebben een aparte database (mysql)
de server zal een belasting hebben van ongeveer 5-20 pakketten per seconde, max 100 in piek momenten.
Bij bv een TCP verbinding laat ik voor elke client connectie een thread aanmaken en hierbinnen word alle data verwerkt. nu komt bij UDP alles binnen via 1 connectie dus moet een andere oplossing bedenken.
nu laat ik de data al asynchroon verwerken, dus de main thread zal niet wachten tot hij klaar is.
hoe zou ik het beste de data kunnen gaan verwerken.
a) elke keer een thread opstarten om de data te verwerken (async doet inpricipe al het zelfde)
maar elke keer de database verbinding leggen lijkt me onhandig / niet snel.
b) een list met classes voor elk device en deze als argument meegeven met de async functie
1x de database verbinding opzetten en deze instand houden.
ik denk zelf dat optie b het beste is
of is een andere methode beter.?
@ H!GHGuY
voor elk device een apparte DB dus momenteel ong 200 databases
de clients maken zelf een verbinding met de server,
het word nu async afgehandeld door de socket zie system.net.sockets.socket.beginreceivefrom
hierbij komt via een UDP pakket data binnen max (1500bytes) per keer. vanaf ong 200 verschillende devices.
al die devices hebben een aparte database (mysql)
de server zal een belasting hebben van ongeveer 5-20 pakketten per seconde, max 100 in piek momenten.
Bij bv een TCP verbinding laat ik voor elke client connectie een thread aanmaken en hierbinnen word alle data verwerkt. nu komt bij UDP alles binnen via 1 connectie dus moet een andere oplossing bedenken.
nu laat ik de data al asynchroon verwerken, dus de main thread zal niet wachten tot hij klaar is.
hoe zou ik het beste de data kunnen gaan verwerken.
a) elke keer een thread opstarten om de data te verwerken (async doet inpricipe al het zelfde)
maar elke keer de database verbinding leggen lijkt me onhandig / niet snel.
b) een list met classes voor elk device en deze als argument meegeven met de async functie
1x de database verbinding opzetten en deze instand houden.
ik denk zelf dat optie b het beste is
of is een andere methode beter.?
@ H!GHGuY
voor elk device een apparte DB dus momenteel ong 200 databases
de clients maken zelf een verbinding met de server,
het word nu async afgehandeld door de socket zie system.net.sockets.socket.beginreceivefrom
[ Voor 15% gewijzigd door Verwijderd op 14-06-2010 19:52 ]