angelicous Posted December 23, 2015 at 10:56 PM Report Share #591026 Posted December 23, 2015 at 10:56 PM Boas pessoal precisava de ajuda para tentar perceber como poderia alcançar o seguinte. Eu queria fazer um programa onde clientes falassem entre si, mas só podiam ser conversas entre determinados tipos. Imaginemos que eu queria fazer um chat que metia duas pessoas a falar aleatoriamente numa sala privada. Mas só poderia colocar a falar homens com mulheres, nunca conversas entre o mesmo sexo(não sou homofóbico, simples exemplo). A ideia que eu tinha em mente, era ter o servidor, a aceitar conexões, e quando um cliente se ligasse, indicasse o seu género M ou F. Se existisse alguém do sexo oposto à espera para conversa, arrancava uma thread com ambos os conectores, caso contrário, ficaria à espera... A minha dúvida é, como é que eu notificaria, esse cliente em especifico, de forma a respeitar que era do sexo oposto, e que é o que está à espera à mais tempo? Link to comment Share on other sites More sharing options...
Hercles Posted December 23, 2015 at 11:44 PM Report Share #591028 Posted December 23, 2015 at 11:44 PM Cria um método de retorno booleano q vai pertimir o acesso se for o sexo oposto do cliente. Link to comment Share on other sites More sharing options...
angelicous Posted December 24, 2015 at 12:53 AM Author Report Share #591031 Posted December 24, 2015 at 12:53 AM (edited) Ok, e se não for? Ficam dois clientes à espera da mesma pessoa depois? O que eu estava a pensar, seria ter tipo 2 filas de espera, uma para M outra para F. Se chegar um M e a fila F estiver vazia, fazia-se um wait. Quando chegasse "uma" F, notificava o primeiro M da fila, e arrancava thread, com o connector dos dois. Agora tenho diversas dúvidas quanto a isto. Primeira, como é que eu acordo algo especifico? Como é que acordo só o M da posição 3 do array, por exemplo. Segunda, acordam a que está "a dormir", antes de abrir a thread, ou depois? Edited December 24, 2015 at 12:59 AM by angelicous Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now