Pessoal, estou fazendo um projetinho que vai utilizar sockets, gostaria de saber o que muda na conexão utilizando TCP e UDP, qual a diferença na fase de codificação.
Desde já agradeço,
Alisson
Pessoal, estou fazendo um projetinho que vai utilizar sockets, gostaria de saber o que muda na conexão utilizando TCP e UDP, qual a diferença na fase de codificação.
Desde já agradeço,
Alisson
Um datagrama(UDP) é uma unidade autônoma que tem todas as informações necessárias para tentar fazer sua entrega. Similar a um envelope, o datagrama tem um endereço do destinatário e do remetente e contém em seu interior os dados a serem enviados. Um socket nesse modo de operação não precisa se conectar a um socket de destino; ele simplesmente envia o datagrama. O protocolo UDP só promete fazer o melhor esforço possível para tentar entregar o datagrama. A operação UDP é rápida e eficiente, mas sua entrega não é garantida…
Um socket no modo TCP precisa se conectar ao destino antes de transmitir os dados. Uma vez conectados, os sockets são acessados pelo uso de uma interface de fluxos: abertura-leitura-escrita-fechamento. Tudo que é enviado por um socket é recebido pela outra extremidade da conexão, exatamente na mesma ordem em que foi transmitido. A operação baseada TCP é menos eficiente do que a operação UDP, mas sua entrega é garantida…
Em TCP você vai estabelecer uma conexão e trocar streams de bytes de forma contínua.
Em UDP, você vai selecionar um IP e enviar datagramas independentes, e o UDP não garante que esses datagramas vão chegar do outro lado. :roll:
Na codificação Java mesmo o que vai mudar é que em TCP você provavelmente você vai precisar ler o stream de bytes das mensagens recebidas e procurar por pedaços de mensagens, já que elas podem não chegar completamente quando você as estiver lendo.
Já em UDP, se a aplicação precisar garantir que pacotes cheguem do outro lado, você vai ter que implementar esse controle “na unha”.
Quando fiz Redes 1 na faculdade tive que implementar um mesmo jogo em duas partes: a primeira era implementada usando UDP e a segunda em TCP (e salve o GUJ pra ajudar ). Achei o UDP mais tranquilo de programar, mas não tem nada complicado em nenhum dos dois.
[]'s
Essa parte teórica eu já tinha idéia… se possível gostaria que enviassem algum código para eu estar olhando como é implementado com TCP e com UDP…
Mas muito obrigado mesmo, esclareceram algumas coisas para mim tb com a teoria…
Ai dá uma olhada no google… existem muitos exemplos do que vc procura…