Une communication client-serveur basée sur les canaux

Ce programme présente la communication entre deux processus s'exécutant sur le même ordinateur ou non en utilisant les canaux de Microsoft, les tuyau nommés ou les socquettes.

Les fichiers sources sont dans le répertoire :

Mode compilé

Commande de compilation

upscmp Source=serveur.upl

upscmp Source=client.upl

Commande d'exécution

Exécution du serveur

serveur NbServeurs=1 PasDOrb=Oui

Exécution du client

client

Mode interprété

Exécution du serveur

upssng Source=serveur.upl NbServeurs=1 PasDOrb=Oui

Exécution du client

upssng Source=client.upl

Fichiers sources

En utilisant Up ! Microsoft Network

Source du serveur

Source Composant "Exemple d'emploi des socquettes" Version 4.0.0;

ImporterModule
/************/
Variable
/******/
Principal
/*******/
Debut
C=CanalMicrosoftNetwork("UpsMsn://local/MonCanal");
C.ServirDesClients();
TantQue Vrai Faire Fin TantQue
Fin Principal

Source du client

Source Composant "Exemple d'emploi des socquettes" Version 4.0.0;

ImporterModule
/************/
Procedure Dialoguer(Libelle : Caractere)
/************************************/
Variable
Debut
C=CanalMicrosoftNetwork("UpsMsn://local/MonCanalClient");
C.ConnecterAUnServeur("UpsMsn://local/MonCanal");
C.Ecrire(Libelle);

?=C.LireUneLigne(L);
C.Fermer();
Ecran.Ecrire(L);
Fin Procedure

Principal
/*******/
Debut
Dialoguer("Bonjour le monde\n");
Attendre(1.0);
Dialoguer("Hello the world\n");
Attendre(1.0);
Dialoguer("Guten tag die welt\n");
Fin Principal

En utilisant Up ! Named Pipes

Source du serveur

Source Composant "Exemple d'emploi des socquettes" Version 4.0.0;

ImporterModule
/************/
Variable
/******/
Principal
/*******/
Debut
C=CanalTuyauNomme("UpsNap://local/MonCanal");
C.ServirDesClients();
TantQue Vrai Faire Fin TantQue
Fin Principal

Source du client

Source Composant "Exemple d'emploi des socquettes" Version 4.0.0;

ImporterModule
/************/
Procedure Dialoguer(Libelle : Caractere)
/************************************/
Variable
Debut
C=CanalTuyauNomme("UpsNap://local/MonCanalClient");
C.ConnecterAUnServeur("UpsNap://local/MonCanal");
C.Ecrire(Libelle);

?=C.LireUneLigne(L);
C.Fermer();
Ecran.Ecrire(L);
Fin Procedure

Principal
/*******/
Debut
Dialoguer("Bonjour le monde\n");
Attendre(1.0);
Dialoguer("Hello the world\n");
Attendre(1.0);
Dialoguer("Guten tag die welt\n");
Fin Principal

En utilisant Up ! Transmission Control Protocol

Source du serveur

Source Composant "Exemple d'emploi des socquettes" Version 4.0.0;

ImporterModule
/************/
Variable
/******/
Principal
/*******/
Debut
C=CanalTcpIp(UpsTcp://local:2048);
C.ServirDesClients(10);
TantQue Vrai Faire Fin TantQue
Fin Principal

Source du client

Source Composant "Exemple d'emploi des socquettes" Version 4.0.0;

ImporterModule
/************/
Procedure Dialoguer(Libelle : Caractere)
/************************************/
Variable
Debut
C=CanalTcpIp("UpsTcp://local");
C.ConnecterAUnServeur(UpsTcp://local:2048);
C.Ecrire(Libelle);

?=C.LireUneLigne(L);
C.Fermer();
Ecran.Ecrire(L);
Fin Procedure

Principal
/*******/
Debut
Dialoguer("Bonjour le monde\n");
Attendre(1.0);
Dialoguer("Hello the world\n");
Attendre(1.0);
Dialoguer("Guten tag die welt\n");
Fin Principal

Résultat de l'exécution

BONJOUR LE MONDE HELLO THE WORLD GUTEN TAG DIE WELT