Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

jarsantos

Servidores muito requesitados

Mensagens Recomendadas

jarsantos    0
jarsantos

Estou a fazer um projecto em que tenho 1 servidor bastante requesitado.

A minha questão é:

devo ter uma thread com um socket e sempre que recebe 1 pedido cria uma nova thread com uma funçao para processar o pedido ou em x de ter apenas uma thread para receber os pedidos ter 2 threads com a mesma socket a receber e tratar os pedidos?

Sabem alguma outra alternativa para ter o minimo de pacotes perdidos?

ja agora, devo avisar se a socket será do tipo UDP para ser mais rapido.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Boas, tive dificuldade em perceber a tua questão, da próxima vez mete algumas vírgulas no meio de uma frase de 2 linhas! :thumbsup::D

Não sei o que pretendes dizer com avisar o socket que é UDP. TCP é mais fiável e mais lento que UDP. Não sei como poderás avisar...

Quanto ao número de sockets, no servidor deve estar a correr sempre um ciclo que esteja à espera de ligações. Quando um cliente se liga ao servidor, o servidor aí cria um novo socket só para tratar daquele pedido, dando a oportunidade assim de alguém mais se poder conectar.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    312
Rui Carlos

Não sei o que pretendes dizer com avisar o socket que é UDP. UDP é mais fiável e mais lento que TCP. Não sei como poderás avisar...

:eek:

parece-me que estás a fazer confusão... acho que é ao contrário, não?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Kyu    0
Kyu

Boas, tive dificuldade em perceber a tua questão, da próxima vez mete algumas vírgulas no meio de uma frase de 2 linhas! :thumbsup::D

Não sei o que pretendes dizer com avisar o socket que é UDP. UDP é mais fiável e mais lento que TCP. Não sei como poderás avisar...

Quanto ao número de sockets, no servidor deve estar a correr sempre um ciclo que esteja à espera de ligações. Quando um cliente se liga ao servidor, o servidor aí cria um novo socket só para tratar daquele pedido, dando a oportunidade assim de alguém mais se poder conectar.

Click Hipnoted post -> Select All -> Find Replace "UDP" = "TCP" -> Find Replace "socket" = "thread"

é isso, só que tudo trocado :D

TCP de facto é mais lento e mais fiável que UDP, e de facto cria uma nova thread só para tratar daquele pedido :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
inginheiiro    1
inginheiiro

Estou a fazer um projecto em que tenho 1 servidor bastante requesitado.

A minha questão é:

devo ter uma thread com um socket e sempre que recebe 1 pedido cria uma nova thread com uma funçao para processar o pedido ou em x de ter apenas uma thread para receber os pedidos ter 2 threads com a mesma socket a receber e tratar os pedidos?

Sabem alguma outra alternativa para ter o minimo de pacotes perdidos?

ja agora, devo avisar se a socket será do tipo UDP para ser mais rapido.

1- UDP é um protocolo não orientado à conexão. ao contrario do TCP. Isto quer dizer que não existem garantias de te chegar um datagram UDP que seja enviado pelo cliente.

2-Deves usar uma threadPool com um limite para atender pedidos.

3-Deves criar uma thread async para responder aos pedidos. Actualmente recorre-se muito aos non blocking sockets programming (NBS). http://www.developerfusion.co.uk/show/28/8/

4-Se é um trabalho de universidade,  ignora a parte da threadPool, e cria uma thread para atender o pedido :thumbsup:

/ing

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade