Ik ben bezig met het maken van een applicatie die zowel server als client is.
Het client gedeelte werkt allemaal goed. Nu ben ik bezig om het server gedeelte te implementeren.
De methode serviceSocket.accept(); is blocking: hij wacht op een client die verbinding wilt maken met deze server en dan gaat hij verder.
Omdat mijn applicatie meer is dan alleen een server loopt mijn applicatie vast. Ik kan niets meer doen in mijn applicatie omdat hij oneindig lang wacht op een client.
Oftewel hoe zorg ik ervoor dat er wel continu geluisterd wordt naar clients maar dat er ook nog processor tijd over is om andere dingen te doen?
Als ik de code in een thread zet... en ga slapen (bijv. 200ms) dan werkt het programma.
Alleen mis ik clients die in de slaaptijd verbinding willen maken.... Hierdoor mis ik cruciale berichten.
Het client gedeelte werkt allemaal goed. Nu ben ik bezig om het server gedeelte te implementeren.
De methode serviceSocket.accept(); is blocking: hij wacht op een client die verbinding wilt maken met deze server en dan gaat hij verder.
Omdat mijn applicatie meer is dan alleen een server loopt mijn applicatie vast. Ik kan niets meer doen in mijn applicatie omdat hij oneindig lang wacht op een client.
Oftewel hoe zorg ik ervoor dat er wel continu geluisterd wordt naar clients maar dat er ook nog processor tijd over is om andere dingen te doen?
code:
1
2
3
| clientSocket = serviceSocket.accept(); // Create a socket object from the ServerSocket
serviceInputStream = new DataInputStream(clientSocket.getInputStream()); // to listen and accept connections
serviceOutputStream = new DataOutputStream(clientSocket.getOutputStream()); |
Als ik de code in een thread zet... en ga slapen (bijv. 200ms) dan werkt het programma.
Alleen mis ik clients die in de slaaptijd verbinding willen maken.... Hierdoor mis ik cruciale berichten.
[ Voor 9% gewijzigd door T.I.M op 19-11-2007 16:09 ]