Je travaille sur un projet JAVA dans lequel il y a plusieurs terminaux. Ces terminaux agissent en tant que client et serveurs. Par exemple s'il y a 3 terminaux A, B et C. À un moment donné, l'un d'entre eux dit A, sera un client faisant une demande de diffusion. Les deux autres terminaux, B et C, répondront. J'utilise des prises pour les faire communiquer. Une fois la réponse reçue de tous les autres terminaux, A vérifie le pool de canaux pour voir si l'un des canaux est libre. Il prend le canal libre et le rend disponible faussement.Transfert de HashMap entre le client et le serveur en utilisant Sockets (JAVA)
Le channelpool est mis en oeuvre en utilisant hashmap:
HashMap channelpool = new HashMap();
channelpool = 1 = true, 2 = true, 3 = false, 4 = true, 5 = true, 6 = true, 7 = true, 8 = true, 9 = true, 10 = true
Ainsi Au départ, tous les canaux sont vrais, n'importe quel terminal peut prendre n'importe quel canal. Mais une fois le canal pris, il est défini sur false pour la période d'utilisation, puis réinitialisé sur true.
Maintenant, cette Hashmap doit être partagée entre les terminaux distribués. En outre, il devrait être maintenu à jour. Je ne peux pas utiliser une ressource partagée entre les terminaux pour stocker le HashMap. Quelqu'un peut-il me dire un moyen facile de transférer le HashMap entre les terminaux. J'apprécierais que quelqu'un puisse me diriger vers un site Web qui en parle.
Merci Meriton et EJP pour vos réponses. Je comprends que le transfert de la hashmap est une tâche facile. J'utilise java.io.ObjetOutputStream comme suggéré. Comme vous l'avez souligné, comment vais-je m'assurer qu'un seul processus change la HashMap à la fois? Je suis nouveau à la programmation distribuée. Je ne sais pas comment utiliser le RAV JAVA et tout. L'utilisation de RMI est-elle la seule solution ou existe-t-il une solution plus facile? – sar
RMI est la solution la plus simple que je peux penser. – EJP