Un aperçu de l'udp...


qu'est-Ce que UDP?
Comment peut-on l'utiliser en Delphi?
Introduction au UDP
UDP est une abréviation pour le Protocole de Datagramme Utilisateur. C'est rien, mais un protocole de transport sans connexion qui fonctionne sur TCP/IP IP.
L'avantage de ce protocole est qu'il est sans connexion. Il n'a pas besoin de connexion avant d'envoyer les paquets de données à un autre ordinateur.
L'inconvénient est qu'il fournit fiable service de datagramme. Qui est, les paquets de données peuvent être reproduits, perdus ou reçus dans un ordre différent de celui dans lequel ils ont été envoyés. Si l'application doit gérer toutes ces situations de manière robuste.
Le programme de réception des demandes d'un nombre d'octets (le maximum sera le nombre total d'octets dans le paquet reçu). Si moins que le paquet complet est à lire, puis le reste est ignoré. Alors la prochaine lecture est à partir du prochain paquet. Cela signifie que les limites du paquet d'origine sont conservés. Pour que l'application doit gérer la correction de l'erreur lors de la lecture de paquets.
Cette UDP est le mieux adapté pour les petites, les indépendants, les demandes exigeant une valeur d'une variable, etc., Si les données sont trop volumineuses pour envoyer (j'.e nombre de paquets de données) et précieux, puis UDP n'est pas le meilleur protocole à utiliser.
Il existe un composant de Delphi 5 edition pour l'UDP de NetMasters appelé NMUDP. Ce composant est similaire à l'utilisation comme TclientSocket composant.
La comparaison de TClientSocket composant avec TNMUDP composant:

autant Que les propriétés sont concernés, ici dans NMUDP nous devons définir la LocalPort(il pourrait être n'importe quel nombre entier supérieur à zéro, mais ne doit pas être zéro) pour recevoir les données envoyées par le serveur en plus de la RemoteHost et RemotePort. Mais en fait, l'hôte ne peut pas être une seule télécommande. Il pourrait être un ordinateur local. (j'.e) on peut envoyer des paquets de données vers la machine cliente elle-même et obtenir réponse à dos pour des fins de test.
en outre, nous pouvons définir le Niveau de Rapport à la propriété pour obtenir le statut au cours de la transmission.
Et aussi loin que les méthodes sont concernés, il n'y a pas de différence majeure, vous avez la ReadStream, ReadBuffer méthodes comme dans TClientSocket composant.
Concernant les événements:
Comme l'événement Onclientsocketread dans Tclientsocket composant, ici, nous pouvons utiliser la clé de l'événement OnDataReceived récupérer les données à partir du serveur.
Concernant les limites de paquets de données, nous avons besoin de définir les limites de paquets de données tout en utilisant soit le TclientSocket ou la NMUDP composant d'obtenir exactement les données envoyées par le serveur.
(quel que soit le composant que vous utilisez), on peut utiliser la notion de message balise d'en-tête et de fin de balise comme des balises HTML. Par que nous puissions identifier le début et la fin d'un paquet de données. Aussi, nous pouvons envoyer beaucoup d'informations dans un paquet de données avec les différents en-tête du message/balise de fin.
(Ce paragraphe sera de répondre à une question d'une personne demandait parfois en arrière thro' e-mail)
Dans mon application, j'envoie tout un tas d'octets à un autre ordinateur et d'obtenir la réponse à l'aide de l'en-tête de message/balise de fin. Avec cette approche, il y a très peu de possibilité de perte de données. Si nous n'avions pas l'ensemble du contenu des balises entre l'en-tête/balise de fin, on peut lancer une erreur de l'utilisateur, de sorte que l'utilisateur peut essayer de le renvoyer à nouveau les mêmes données ou de prendre d'autres mesures robuste.
Profitez-en!!!
Merci.
Magesh.









Un aperçu de l'udp...


Un aperçu de l'udp... : Plusieurs milliers de conseils pour vous faciliter la vie.


qu'est-Ce que UDP?
Comment peut-on l'utiliser en Delphi?
Introduction au UDP
UDP est une abreviation pour le Protocole de Datagramme Utilisateur. C'est rien, mais un protocole de transport sans connexion qui fonctionne sur TCP/IP IP.
L'avantage de ce protocole est qu'il est sans connexion. Il n'a pas besoin de connexion avant d'envoyer les paquets de donnees a un autre ordinateur.
L'inconvenient est qu'il fournit fiable service de datagramme. Qui est, les paquets de donnees peuvent etre reproduits, perdus ou reçus dans un ordre different de celui dans lequel ils ont ete envoyes. Si l'application doit gerer toutes ces situations de maniere robuste.
Le programme de reception des demandes d'un nombre d'octets (le maximum sera le nombre total d'octets dans le paquet reçu). Si moins que le paquet complet est a lire, puis le reste est ignore. Alors la prochaine lecture est a partir du prochain paquet. Cela signifie que les limites du paquet d'origine sont conserves. Pour que l'application doit gerer la correction de l'erreur lors de la lecture de paquets.
Cette UDP est le mieux adapte pour les petites, les independants, les demandes exigeant une valeur d'une variable, etc., Si les donnees sont trop volumineuses pour envoyer (j'.e nombre de paquets de donnees) et precieux, puis UDP n'est pas le meilleur protocole a utiliser.
Il existe un composant de Delphi 5 edition pour l'UDP de NetMasters appele NMUDP. Ce composant est similaire a l'utilisation comme TclientSocket composant.
La comparaison de TClientSocket composant avec TNMUDP composant:

autant Que les proprietes sont concernes, ici dans NMUDP nous devons definir la LocalPort(il pourrait etre n'importe quel nombre entier superieur a zero, mais ne doit pas etre zero) pour recevoir les donnees envoyees par le serveur en plus de la RemoteHost et RemotePort. Mais en fait, l'hote ne peut pas etre une seule telecommande. Il pourrait etre un ordinateur local. (j'.e) on peut envoyer des paquets de donnees vers la machine cliente elle-meme et obtenir reponse a dos pour des fins de test.
en outre, nous pouvons definir le Niveau de Rapport a la propriete pour obtenir le statut au cours de la transmission.
Et aussi loin que les methodes sont concernes, il n'y a pas de difference majeure, vous avez la ReadStream, ReadBuffer methodes comme dans TClientSocket composant.
Concernant les evenements:
Comme l'evenement Onclientsocketread dans Tclientsocket composant, ici, nous pouvons utiliser la cle de l'evenement OnDataReceived recuperer les donnees a partir du serveur.
Concernant les limites de paquets de donnees, nous avons besoin de definir les limites de paquets de donnees tout en utilisant soit le TclientSocket ou la NMUDP composant d'obtenir exactement les donnees envoyees par le serveur.
(quel que soit le composant que vous utilisez), on peut utiliser la notion de message balise d'en-tete et de fin de balise comme des balises HTML. Par que nous puissions identifier le debut et la fin d'un paquet de donnees. Aussi, nous pouvons envoyer beaucoup d'informations dans un paquet de donnees avec les differents en-tete du message/balise de fin.
(Ce paragraphe sera de repondre a une question d'une personne demandait parfois en arriere thro' e-mail)
Dans mon application, j'envoie tout un tas d'octets a un autre ordinateur et d'obtenir la reponse a l'aide de l'en-tete de message/balise de fin. Avec cette approche, il y a tres peu de possibilite de perte de donnees. Si nous n'avions pas l'ensemble du contenu des balises entre l'en-tete/balise de fin, on peut lancer une erreur de l'utilisateur, de sorte que l'utilisateur peut essayer de le renvoyer a nouveau les memes donnees ou de prendre d'autres mesures robuste.
Profitez-en!!!
Merci.
Magesh.


Un aperçu de l'udp...

Un aperçu de l'udp... : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation