DissertationsEnLigne.com - Dissertations gratuites, mémoires, discours et notes de recherche
Recherche

Windev socket

Cours : Windev socket. Rechercher de 53 000+ Dissertation Gratuites et Mémoires

Par   •  20 Décembre 2018  •  Cours  •  1 713 Mots (7 Pages)  •  837 Vues

Page 1 sur 7

COURS WINDEV NUMERO 5

Rappels de notions réseaux, Tcp/ip, Ports

Études des Sockets, communication répartie

Cours Windev numéro 5

Page 1 sur 7

Cours Windev numéro5

V E R S I O N 1 9

Grâce à ce nouveau Tp nous allons rentrer dans le mo

nde merveilleux de la communication distante via

réseau. Cette jolie introduction pour vous faire compre

ndre que ce support va vous apprendre à faire

discuter 2 (ou plusieurs) ordinateurs entre eux. Nous a

llons employer les Sockets et les threads.

Commençons par définir ces 2 termes :

Les Sockets : (Tous ceux qui pensent à une chaussette s

ont virés) Une Socket est définie comme une

extrémité d’une communication.

Une paire de processus (ou de Threads) communiquant

sur un réseau emploie une paire de sockets, une

pour chaque processus. Une socket est constituée d’un

e adresse IP concaténée à un numéro de port. En

général les sockets utilisent une architecture Client/S

erveur. Le serveur attend des requêtes entrantes du

client en écoutant un port spécifique. Dès réception

d’une requête, il accepte une connexion de la socket

du client. Les serveurs implémentant des services pa

rticuliers (par exemple, telnet, ftp, mail, http), écoutent

des ports bien connus (Telnet écoute le port 23, un s

erveur ftp le port 21, un serveur web [ Http ] le port

80 ). Les ports inférieurs à 1024 sont considérés com

me connus et sont utilisables pour les services stan

dards.

Lorsqu’un thread client commence une requête de conne

xion, il se voit assigner un port par la machine hô

te.

Ce port est un nombre supérieur à 1024.

Par exemple, lorsqu’un client de l’hôte X d’adresse

Ip 192.168.5.20 souhaite établir une connexion avec

un serveur Web (qui écoute le port 80) d’adresse 192.

168.6.10, l’hôte X peut se voir affecter le port

1625. La connexion est constituée d’une paire de sock

ets : (192.168.5.20 : 1625) sur l’hôte X et

(192.168.6.10 : 80) sur le serveur Web.

Un thread peut être perçu comme un flot de contrôle à

l’intérieur d’un processus. Dans notre cas il

joue le rôle d’interface entre les 2 ordinateurs, inter

ceptant les données transmises.

Notre exercice consistera à créer 2 exécutables, un cl

ient et un serveur. Le serveur sera en attente de

réception de message et le client essayera de se con

necter au serveur et de lui envoyer des messages.

Pour cela il nous faudra 2 projets un pour le client,

un pour le serveur

Je vous rappelle que plus on avance au fil des supp

orts moins je détaille les fonctionnalités que je consi

dère

comme devant être acquises. Donc si à ce stade vous é

prouvez des difficultés reprenez les cours précédent

s.

Nous montons en gamme en terme d’expertise donc il est

probable que vous éprouverez certaines

difficultés sur ce support. Restez motivé et recommence

z le autant de fois que nécessaire. Le but étant de

le réaliser sans avoir recours à ce support.

Cours Windev numéro 5

Page

2

sur

7

PARTIE SERVEUR

Vous allez commencer par créer un nouveau projet nom

mé «

Serveur

». Nous ne travaillerons pas sur des

fichiers donc faites en sorte de n'utiliser aucune an

alyse. Nous n’aurons besoin que d’une fenêtre que vo

us

nommerez «

Depart

» et qui sera la première fenêtre du projet. Faites en

sorte qu’elle ressemble à celle-

ci :

Cette zone est destinée à

recevoir le numéro du port

d’écoute. C’est un objet

champ de saisie que vous

nommerez «

portip

»

Ces

2

boutons

seront

nommés

«

demarre

» et «

arrete

». A vous de

choisir qui est qui.

Ici s’afficheront les phrases envoyées

par le client. C’est un objet liste que vous

nommerez «

liste1

»

Analysons le fonctionnement du serveur :

Cette zone de texte nous indiquera si le

serveur est actif ou pas. C’est un objet

champ de saisie que vous nommerez

«

etatserveur

»

Il faut lui donner un port a écouter.

Il faut lancer la boucle d’écoute ( boucle infinie )

et faire en sorte que les événements d’entrés ( demande

de connexion...) soient traités par des threads.

Une fois la connexion acceptée le texte recu sera insc

rit dans la liste déroulante.

Retroussons nos manches et en avant pour le codage.

Nous allons commencer par créer une procedure

d’attente ( la boucle d’écoute ). Pour cela créez une pro

cédure globale nommée “

attente

Cours Windev numéro 5

Page

3

sur

7

Voici le code que nous allons analyser.

Vous pouvez constater que nous nous trouvons devant un

e boucle sans fin ou en attente dite active. A

l’intérieur de cette boucle une fonction WinDev ( Socke

tAttendConnexion ), est chargée de verifier si des

demandes de connexion se produisent. Comme parametre

cette fonction prend un argument qui est le nom

de la socket ici “serveur”. Ne vous inquietez pas po

ur l’instant, vous allez voir ou nous allons définir

la

socket nommée “serveur”. Pour l’instant l’essentiel e

st de comprendre le principe de la boucle d’attente

active. Donc si une demande de connexion se produit

pour la socket “serveur” on l’accepte en créant un

canal de communication. Vous pouvez considérer ce ca

nal comme un tunel ou les données vont transiter.

La ligne : ThreadExécute(“threadcnx”,threadNormal,"

affichemes",canal), est chargée de faire en sorte que

le code de la fonction affichemes soit executée comme

un Thread normal appelé “threadcnx” utilisant le

parametre “canal”)

Multitache(-30) : L'exécution de l'application est susp

endue durant 100ème de seconde.

D'autres traitements peuvent être exécutés durant cette p

ériode de temps (ré-affichage ou exécution d'un

code de clic par exemple). Dans notre cas la boucle

est gelée pour permettre aux threads de s’exécuter

durant leurs quantums.

Donc : la socket s’appelle « serveur », le canal cr

ée s’appelle canal, le thread gestionnaire se nomme

« threadcnx ».

J’admets qu’au premier abord cela puisse vous sembl

er complexe, alors que c’est extrêmement logique.

Relisez le paragraphe précédent et imaginez le fonc

tionnement : la boucle sans fin, l’attente de connexio

n,

le traitement de la connexion....

Maintenant nous allons nous intéresser à la procédur

e « affichemes ».C’est elle le cœur de notre serveur

puisque c’est la gestionnaire d’événement. Pour ce f

aire créez une procédure globale « affichemes »

(affichemes pour affiche messages).

PROCEDURE attente()

BOUCLE // début de la boucle

SI SocketAttendConnexion("serveur") ALORS // si une

demande de connexion est en attente

canal est une chaîne

canal=SocketAccepte("serveur") //Cette fonction per

met de créer le canal de communication entre

la socket serveur et la socket cliente.

ThreadExécute(“threadcnx”,threadNormal,"affichemes"

,canal) //Lance l'exécution d'un "thread"

Multitache(-30) //La fonction Multitache avec un ne

...

Télécharger au format  txt (12.1 Kb)   pdf (73.6 Kb)   docx (17.6 Kb)  
Voir 6 pages de plus »
Uniquement disponible sur DissertationsEnLigne.com