wiki:passerelle

La passerelle Linux/Windows?

Description

Nous avons du matériel (Le trackIR 4 PRO et le Phantom omni) qui fonctionne sous Windows, alors que notre bibliothèque d'interactions et l'application qui l'utilisera sera sous Linux. Alors nous avons réalisé un socket entre Linux et Windows pour transmettre les données des périphérique à la bibliothèque.

Définition

Client : Une application, installée sur votre ordinateur, qui récupère des informations sur un serveur distant.
Serveur :(n. m.)(Anglais : server, on-line data service.) Système informatique destiné à fournir des services à des utilisateurs connectés.
Passerelle : (n. f.)(Anglais : gateway.) Dispositif destiné à connecter des réseaux de télécommunication ayant des architectures différentes ou des protocoles différents, ou offrant des services différents.

Fonctionnement de la passerelle

La partie serveur du socket est sous Windows, il écoute un port en attendant un client pour échanger des données. Quand un client se connecte sur le port, il discute jusqu'à ce que le client arrête le dialogue en envoyant le message "closesocket". Le serveur se remet à écouter le port. Pour fermer complètement la socket il faut envoyer comme message "closeserveur". On a un serveur qui ne peut accepter qu'un client à la fois.

Fonctionnement en utilisant une Virtualbox

Le client lui se connecte au serveur, mais comme le serveur est sous la machine virtuelle, on a dû faire un "mapping" des ports pour pouvoir y accéder. Un "mapping" des ports sert à rediriger les paquets TCP reçus sur un port de l'OS hôte (venant de toutes ses interfaces) vers un port de l'OS invité. Voici le code à taper dans la console Linux.

VBoxManage setextradata "Win" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/socket/Protocol" TCP
VBoxManage setextradata "Win" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/socket/GuestPort" 5169
VBoxManage setextradata "Win" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/socket/HostPort" 5169

Ce code permet de rediriger les données envoyer sur le port 5169 de localhost, sur le port 5169 de la machine virtuelle Win. Vous pouvez trouver de plus ample information sur la virtual box à cette  page. Attention le mappaging des ports fait croire au client qu'il est connecté à un serveur même si sous windows aucun serveur n'est lancé. Cela peut entrainer quelque problème sur le fonctionnement de la socket.


Retour au Wiki

Attachments