Ik heb een client en een server geschreven in java. Deze communiceren met elkaar door middel van sockets. Nu is het de bedoeling dat de verbinding een tijd open blijft staan, waarbij de client zo nu en dan info in de vorm van chars of bytes naar de server stuurt.
Nu wil ik dat de server alleen reageert op het moment dat de client data verstuurt. Alleen het probleem is dat ik aan de serverkant continu moet checken of er data verstuurd is door de client. Ik krijg dus een lus (verbinding is inmiddels verkregen):
Het probleem is dat een programma in een infinite lus laten lopen niet getuigd van enige efficientie. Wat ik eigenlijk wil is een of andere event die aangeroepen wordt op het moment dat er weer data in de readbuffer staat. Is zoiets dergelijks mogelijk?
Nu wil ik dat de server alleen reageert op het moment dat de client data verstuurt. Alleen het probleem is dat ik aan de serverkant continu moet checken of er data verstuurd is door de client. Ik krijg dus een lus (verbinding is inmiddels verkregen):
code:
1
2
3
4
5
| while (true) {
var = in.read() ;
if (var != -1)
doStuff() ;
} |
Het probleem is dat een programma in een infinite lus laten lopen niet getuigd van enige efficientie. Wat ik eigenlijk wil is een of andere event die aangeroepen wordt op het moment dat er weer data in de readbuffer staat. Is zoiets dergelijks mogelijk?