Sockets ou indy?

Delphi

29/10/2007

Estou desenvolvendo uma aplicação Cliente Servidor.
Há um tempo atrás ja trabalhei com isso e montei usando apenas sockets.
Mas agora estou com um aplicativo que exige mais tarefas e como estou no começo ainda gostaria de saber se podem me dar uma opinião sobre qual componente usar.
Na parte do cliente vai ter acesso a banco de dados, mas nao vou poder instalar o sql server (client) nas maquinas onde vai rodar o client.
O cliente manda as informações para o Server e este executa as funções e retorna para o client.
Então qual o melhor caminho?

Sockets da paleta Internet, ou os componentes da paleta Indy?

Pois com os sockets estou tendo um certo trabalho para identificar as conexões ativas bem como defnir para qual conexão qual comando vai ser enviado.


Michele

Michele

Curtidas 0

Respostas

Alexandrej

Alexandrej

29/10/2007

Estou desenvolvendo uma aplicação Cliente Servidor. Há um tempo atrás ja trabalhei com isso e montei usando apenas sockets. Mas agora estou com um aplicativo que exige mais tarefas e como estou no começo ainda gostaria de saber se podem me dar uma opinião sobre qual componente usar. Na parte do cliente vai ter acesso a banco de dados, mas nao vou poder instalar o sql server (client) nas maquinas onde vai rodar o client. O cliente manda as informações para o Server e este executa as funções e retorna para o client. Então qual o melhor caminho? Sockets da paleta Internet, ou os componentes da paleta Indy? Pois com os sockets estou tendo um certo trabalho para identificar as conexões ativas bem como defnir para qual conexão qual comando vai ser enviado.


RemObjects de olhos fechados.
www.remobjects.com


GOSTEI 0
Massuda

Massuda

29/10/2007

Sockets da paleta Internet, ou os componentes da paleta Indy?
Sugestão: dê uma olhada nos exemplos do Indy, já que você já conhece os componentes ´sockets´.

Existe uma diferença básica entre os dois componentes: Indy é multithread e faz IO em modo síncrono enquanto sockets faz IO assincrono, usando eventos para sinalizar momentos importantes do processo de comunicação.

O fato do IO ser síncrono significa que o programa fica parado enquanto uma operação de IO estiver em andamento (envio/recepção de dados) e por essa razão Indy usa multithread para evitar que o programa fique congelado. IO assincrono não congela o programa, mas significa que você só sabe se uma operação de IO foi completada quando um determinado evento ocorre.

Se optar por usar o Indy, seria recomendável você atualizar seu Indy. Essa é uma vantagem dele em relação ao sockets... o desenvolvimento é contínuo, sempre tem algum bugfix ou melhoria.


GOSTEI 0
George_piaulino

George_piaulino

29/10/2007

Utilize web service (soap)


GOSTEI 0
POSTAR