2009-11-13 5 views
4

J'ai un serveur et quelques clients (environ 50) dans un intranet. Les clients envoient des données de chaîne courtes (environ 40 caractères) au serveur et le serveur répond avec une chaîne similaire. Il y a jusqu'à (mais pas de façon permanente) 2-3 demandes par seconde pour chaque client. Le serveur doit sérialiser les demandes pour obtenir les chaînes de réponse.Quels sont les moyens d'échanger des données chaîne entre les clients et un serveur dans Delphi?

Le système doit avoir le moins d'impact possible sur le réseau (c'est-à-dire que le serveur peut déjà exécuter quelque chose comme un serveur Web). Il devrait être aussi facile à installer et à administrer que possible. Quelles sont les possibilités pour y parvenir en utilisant Delphi (Client: D7, Serveur jusqu'à D2010)?

+0

Merci à tous pour vos suggestions. –

Répondre

4

Qu'en est-il des TIdTCPServer et TIdTCPClient d'Indy? Ils fournissent des gestionnaires de commandes, ce qui rend l'implémentation de protocoles textuels très simple.

+0

Je les ai déjà regardés. Je voulais seulement recueillir des suggestions ... –

2

Il existe un lot of options.

En fin de compte, je suis d'accord avec Smasher et aime utiliser des douilles. Ils sont rapides, faciles et portables. Si vous travaillez avec un protocole assez simple et n'avez pas besoin d'une solution complète à n niveaux, la création d'une application serveur TCP ou HTTP est simple, très légère et facile à rendre compatible avec n'importe quel client. Vous pouvez même ajouter le support SSL à ces applications autonomes sans devoir configurer un serveur Web ou interférer avec celui-ci, s'il fonctionne déjà dans la même boîte. J'utilise la bibliothèque Synapse pour un serveur si simple.

+0

Le SSL est une idée intéressante. –

+0

C'est une exigence externe de moins pour mon application à s'inquiéter. J'aime installer XCopy pour les serveurs autant que pour les applications client. :) –

5

Il est rapide comme l'éclair, très léger et facile à enfiler. La démo Echo dans l'installation principale de synapse est un début fantastique pour ce que vous essayez de faire. Si vous allez effectuer un accès à la base de données à l'intérieur de chaque thread de demande/réponse, je vous suggère fortement de consulter le connection pool example de Cary Jensen pour vérifier vos connexions à la base de données.

+0

Je vais jeter un oeil. –

+0

Compte tenu de la page de téléchargement Synapse n'a encore que le support expérimental D2009. Cela ne donne pas beaucoup de confiance à mon humble avis. –

5

TCP, définitivement. Mais je voudrais voter pour ICS. Jamais aimé Indy ...

+0

ICS et Indy semblent être tout à fait comparables. Pouvez-vous élaborer POURQUOI vous n'avez jamais aimé Indy? –

+0

ICS est complètement asynchrone et correspond mieux au modèle TCP/IP. – gabr

0

J'utilise RemObjects SDK pour ce genre de but. Il prend soin de toutes les choses difficiles, et je lui demande simplement de se connecter et de faire des appels de fonction pour transmettre les données.