• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jarsantos

Servidores muito requesitados

6 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Enganei-me!  :-[

Já alterei o post! Não sei porquê engano-me sempre nisto!  :wallbash:  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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