Connexion/déconnexion à un serveur X

 

Connexion

Avant toutes choses, vous devez établir une connexion sur un serveur X. Pour cela, vous utiliserez la fonction XOpenDisplay()

Display *XOpenDisplay(display_name) char *display_name;

Les paramètres

En entrée:

display_name spécifie le nom physique du périphérique d'affichage:Hôte:serveur.ecran ou Hôte::serveur.ecran

Sur un système POSIX, si le display_name est NULL, la valeur de la variable d'environnement DISPLAY est prise par défaut.

Image non trouvée !Pour connaître la valeur par défaut, tapez la ligne suivante dans un shell

echo $DISPLAY

Pour modifier la valeur, vous utiliserez

pour le C shell:

setenv DISPLAY display_name

Pour le Bourne shell ou le Korn shell:

DISPLAY=display_name; export DISPLAY

 

Ce nom pourra aussi être un numéro de périphérique d'affichage, dans ce cas, Xlib utilisera le transport qu'il estimera être le plus rapide par la suite pour l'échange de données entre le serveur et l'application.

Il est possible d'indiquer un nom d'hôte. La syntaxe sera alors du style nom_hôte:serveur.ecran pour une connexion TCP, ou nom_hôte::serveur.ecran pour une connexion DECnet.

En sortie:

S'il n'y a pas d'erreur, vous récupérerez une structure de type Display qui vous permettra de récupérer toutes les informations concernant le serveur. Voir chapitre annexe display.

S'il y a une erreur, la fonction retournera la valeur NULL.

Image non trouvée !Il est interdit d'accéder aux membres de la structure Display en lecture comme en écriture ! Utilisez les fonctions ou macros correspondantes (Voir chapitre annexe display).

 

Déconnexion

Avant la fin de votre application, il faudra se déconnecter. Vous utiliserez alors la fonction XCloseDisplay()

XCloseDisplay(display) Display *display;

Cette fonction fait beaucoup de choses, elle va d'abord libérer toutes les ressources X window que vous n'auriez pas encore libéré ( Window, Font, Pixmap, Colormap, Cursor, et GContext, ...) suivant le paramétrage XSetCloseDownMode. Après destruction des fenêtres, fermeture de la connexion avec le serveur.

Paramètres en entrées: La structure display récupérée lors de l'appel à la fonction XOpenDisplay().

 

Exemple

Exemple tout bête qui ne fera qu'établir une connexion et vous indiquera si tout est ok ou non. Puis déconnexion. Il n'y a donc pas de création de fenêtre !

Image non trouvée !

Il y a un bout de code pour traiter le nom physique du périphérique d'affichage passé éventuellement en paramètre. Ce code sera à revoir afin de traiter les paramètres tels que l'on peut les passer habituellement dans ce genre de programme (Voir annexes paramètres d'un programme X).

 

Récupération d'informations sur le serveur

La connexion au serveur étant établie, il sera possible de récupérer des informations sur l'environnement graphique.

Voir le chapitre sur Display

L'utilité de ces informations sera vue dans les chapitres qui suivent...

Voici en attendant un exemple qui retourne des informations sur le serveur ainsi que sur l'écran utilisé:

Image non trouvée !