Por exemplo, um jogo de DAMAS em rede.
Qual seria um boa maneira de se comunicar com rapidez e segurança, ou seja, garantindo, desde que não hajam problemas externos, que a mensagens enviadas sejam sempre recebidas pelo adversário?
Por exemplo, um jogo de DAMAS em rede.
Qual seria um boa maneira de se comunicar com rapidez e segurança, ou seja, garantindo, desde que não hajam problemas externos, que a mensagens enviadas sejam sempre recebidas pelo adversário?
O protocolo TCP já faz isso para você.
Da forma que eu fiz, utilizando o protocolo TCP, estava sendo lenta a comunicação.
Com UDP está sendo rápida, porém perde algumas mensagens.
Da forma que eu fiz, utilizando o protocolo TCP, estava sendo lenta a comunicação.
Com UDP está sendo rápida, porém perde algumas mensagens.
Como assim lenta ?
Mais ou menos assim, a mensagem é enviado, meu sistema fica pausado até que essa mensagem seja recebida pelo outro usuário, porém, eu estava considerando essa comunicação lenta, levando em consideração que é um jogo, e não seria legal ter que esperar tipo, uns 10 ou 15 segundos pra fazer ou receber uma jogada.
Posso estar enganado … mas com certeza o problema não é o TCP, talvez a mensagem que você esteja enviando seja grande demais ou então você está abrindo e fechando a conexão para cada jogada. O ideal é ter a conexão aberta durante o jogo.
Só completando:
Você pode criar um algoritmo de criptografia, para criptografar as mensagens antes de serem enviadas e descriptografá-las antes de lê-las.
É uma ótima idéia um algoritmo para criptografar e descriptografar, posso usar futuramente.
Mas nesse caso, com “segurança” eu quis dizer que as mensagens não se perdessem antes de chegar ao destinatário.
Ou seja, uma comunicação estável, eu acho.
É uma ótima idéia um algoritmo para criptografar e descriptografar, posso usar futuramente.Mas nesse caso, com “segurança” eu quis dizer que as mensagens não se perdessem antes de chegar ao destinatário.
Ou seja, uma comunicação estável, eu acho.
O termo correto é entrega confiável. E quando precisamos de entrega confiável basta usar TCP. Simples assim.
Bom, eu troquei a comunicação do meu sistema para UDP e acho que não dá mais tempo de voltar atrás.
Mas valeu, na próxima eu vou lembrar disso! xD
É trabalho ?
É um trabalho para apresentar na semana da tecnologia xD
10 ou 15 segundos é uma eternidade, mesmo no protocolo TCP. Para um jogo de turnos, como o de damas, é completamente irrelevante a diferença de tempo do UDP, TCP, use você criptografia ou não.
Você só vai ter que recorrer ao UDP em jogos se você precisar trocar pacotes numa velocidades superior a 10 por segundo.
By the way. Para garantir que UDP não perca, corrompa ou desordene mensagens, você provavelmente teria que recorrer ao que o TCP faz. Mas provavelmente, fazendo a implementação na mão, você faria com menos eficiência.
Mesmo que você faça a implementação em C, extremamente otimizada, dificilmente será mais rápido do que o TCP. Por ser um protocolo da indústria, é bem provável que parte dele esteja no seu hardware ou, no mínimo, rodando em modo kernel no seu SO.
Pior é que eu estou implementando na mão mesmo, uma forma de garantir a entrega dessas mensagem… kkkk
Eu literalmente troquei o certo pelo duvidoso. Mas é errando que se aprende né! 
Vlw pela ajuda de todos!
Pior é que eu estou implementando na mão mesmo, uma forma de garantir a entrega dessas mensagem… kkkk
Eu literalmente troquei o certo pelo duvidoso. Mas é errando que se aprende né!![]()
Vlw pela ajuda de todos!
Normal, afinal, quem nunca colocou a culpa no compilador ?