A ideia é que agora o servidor envie periodicamente a hora para um grupo multicast, ao qual os clientes interessados se deverão associar.
Não precisa de implementar a operação para alterar a hora, a qual não beneficia de comunicação multicast.
java MDateServer <multicast_addr> <port_number> <period>
onde
- <multicast_addr> é o endereço IP do grupo multicast;
- <port_number> é o número do porto do grup multicast;
- <period> é o período em segundos com que a hora deverá ser difundida para o grupo.
mdate_clnt <multicast_addr> <port_number>
onde
- <multicast_addr> é o endereço IP do grupo multicast;
- <port_number> é o número do porto do grup multicast.
Para constatar a interoperabilidade fácil entre aplicações simples escritas a este nível deverá desenvolver o cliente na linguagem C e o servidor em Java.
Dica: Se quiser pode inicialmente desenvolver um cliente em Java também.
make mdate_client
make MDateServer
Uma implementação ingénua de multicast usaria uma única fila por grupo multicast, para manter as mensagens recebidas destinadas a esse grupo. Nesta implementação, as mensagens seriam removidas dessa fila, à medida que um cliente invocasse receivefrom(). Qual o problema desta implementação se houver mais do que um cliente no mesmo computador? Em que medida se pode considerar este comportamento válido? Como poderia implementar a bufferização de mensagens multicast de modo a evitar o problema que identificou acima?
This document was translated from LATEX by HEVEA.