% Preamble
\documentclass[a4paper,12pt]{article}

% Packages
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{eurosym}
\usepackage{epsfig}
\usepackage{stmaryrd}

% Title
\title{Pente : Squelette du programme}
\author{D.Moreaux}

% Document
\begin{document}
\maketitle
\section{But de l'étape}
Le code sera adapté pour la gestion du protocole. La gestion du protocole sera également
implémentée au niveau du client.

Des fonctions seront prévues pour traiter le paquet arrivant et envoyer une réponse côté
serveur et pour envoyer un paquet et gérer la réponse côté client.

\section{Serveur}
Au niveau serveur, on devra prévoir (au minimum) les fonctions suivantes :
\begin{itemize}
    \item processcmd : prend en entrée un paquet reçu et un pointeur vers la structure
       client et se charge de traiter la commande
    \item sendpacket : prend un paquet et une structure client et se charge d'envoyer
       le paquet
    \item closeconnection : prend une structure client et se charge de fermer le socket,
       de retirer la structure de la liste des connexions en cours et de libérer la mémoire.
\end{itemize}
On modifiera la boucle principale pour que la fermeture de connexion soit appelée pour s'assurer
qu'un paquet est correctement reçu (taille ou retour de chariot) avant de l'envoyer à la fonction
de traitement.

Si nécessaire, prévoir des buffers d'envoi et de réception dans la structure client.
\section{Client}
on prévoira les envois des différents paquets et la réception de leurs réponses. Le code de test
utilisera les fonctions print() et input() pour envoyer certains paquets au serveur.

\section{commun}
En cas de transmission binaire, on prévoira les structures côté C et les pack/unpack côté Python.

En cas de transmission texte, on mettra en place l'extraction du ``verbe'' et des paramètres de
part et d'autres.


\end{document}