2013-08-25 4 views
1

J'ai fait une application en Java entre deux machines où chacun à la fois fait un calcul sur certaines données et envoie à l'autre pour faire sa part. J'ai réussi à le faire en utilisant des douilles. Par conséquent, les deux machines jouent serveur et client en fonction de la partie du code qu'ils exécutent. Cependant, il faut beaucoup de synchronisation pour avoir déjà les données à calculer et jusqu'ici j'ai réussi à le faire avec un Thread.sleep(); mais comme je mets une grande marge pour le temps de sommeil, il en résulte beaucoup de temps d'inactivité. Je me demandais s'il y avait une alternative à ceci afin que j'aie une synchronisation automatique.Solution alternative aux sockets en Java

+0

Avez-vous envisagé d'utiliser RMI? –

+0

Quel serait l'avantage de l'utiliser? – rima101

+0

Le principal avantage de RMI sur les sockets est la facilité d'utilisation. Vous concevez votre système en utilisant le paradigme OO. La synchronisation est assez simple, car vous pouvez simplement utiliser les moniteurs intégrés de Java. Dans tous les cas, utiliser Thread.sleep comme outil de synchronisation n'est pas une bonne idée. Ce n'est pas sûr. Si vous pouviez ajouter un peu plus de détails sur votre application, je pourrais peut-être vous expliquer mieux. Si vous avez simplement besoin que les deux machines fonctionnent à tour de rôle sur les données, créez un client et l'autre le serveur. Le client fait sa part, appelle le serveur, le serveur fait sa part et revient, et ainsi de suite. –

Répondre

0

Il existe un framework java appelé apache MINA qui résume la complexité et la limite des sockets pures. Vous pouvez trouver plus de détails ici: http://mina.apache.org/