\hypertarget{client_8cpp}{\section{Referencia del Archivo /home/imanol/devel/eclipse/\-P\-A\-D/\-J\-Chat\-Client/src/client.cpp}
\label{client_8cpp}\index{/home/imanol/devel/eclipse/\-P\-A\-D/\-J\-Chat\-Client/src/client.\-cpp@{/home/imanol/devel/eclipse/\-P\-A\-D/\-J\-Chat\-Client/src/client.\-cpp}}
}


Fichero de implementación de un cliente.  


{\ttfamily \#include \char`\"{}client.\-h\char`\"{}}\\*
\subsection*{Funciones}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{client_8cpp_ab99831172d1d4bca2c79bb37c7c062df}{kill\-Thread} (\hyperlink{structthread__args}{thread\-\_\-args} $\ast$t\-\_\-arg)
\begin{DoxyCompactList}\small\item\em Método de liberación de los argumentos. \end{DoxyCompactList}\item 
bool \hyperlink{client_8cpp_ab4a3d59d9d8c97b79cb3a6cb6a0e403c}{connect} (\hyperlink{class_socket}{Socket} \&s)
\begin{DoxyCompactList}\small\item\em Método de conexión. \end{DoxyCompactList}\item 
void $\ast$ \hyperlink{client_8cpp_a6511fc920cd92a0fe628df3f1a1f7e5a}{send\-Thread} (void $\ast$args)
\begin{DoxyCompactList}\small\item\em Thread de envío de mensajes. \end{DoxyCompactList}\item 
void $\ast$ \hyperlink{client_8cpp_abbdd974364b0dba7bb0524ab8f115a03}{recv\-Thread} (void $\ast$args)
\begin{DoxyCompactList}\small\item\em Thread de recepción de mensajes. \end{DoxyCompactList}\item 
int \hyperlink{client_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}{main} ()
\begin{DoxyCompactList}\small\item\em Método principal del cliente. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{client_8cpp_ab36823025f12a809217f7771125658c2}{connected}
\begin{DoxyCompactList}\small\item\em Variable de estado del programa. \end{DoxyCompactList}\item 
bool \hyperlink{client_8cpp_a9324389a5cdc532c6417a87ccafe18ce}{finished}
\begin{DoxyCompactList}\small\item\em Variable de estado del programa. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Descripción detallada}
Fichero de implementación de un cliente. \begin{DoxyAuthor}{Autor}
Imanol Barba Sabariego 
\end{DoxyAuthor}
\begin{DoxyDate}{Fecha}
13/06/2013
\end{DoxyDate}
En este fichero se implementa un cliente para poder usar con el servidor creado, usando la clase \hyperlink{class_socket}{Socket}. R\-E\-V\-I\-S\-A\-D\-O E\-L 10/12/2013 P\-A\-R\-A L\-A A\-P\-L\-I\-A\-C\-IÓ\-N J\-C\-H\-A\-T 

\subsection{Documentación de las funciones}
\hypertarget{client_8cpp_ab4a3d59d9d8c97b79cb3a6cb6a0e403c}{\index{client.\-cpp@{client.\-cpp}!connect@{connect}}
\index{connect@{connect}!client.cpp@{client.\-cpp}}
\subsubsection[{connect}]{\setlength{\rightskip}{0pt plus 5cm}bool connect (
\begin{DoxyParamCaption}
\item[{{\bf Socket} \&}]{s}
\end{DoxyParamCaption}
)}}\label{client_8cpp_ab4a3d59d9d8c97b79cb3a6cb6a0e403c}


Método de conexión. 

Este método conecta el cliente a una sala de chat. \hypertarget{client_8cpp_ab99831172d1d4bca2c79bb37c7c062df}{\index{client.\-cpp@{client.\-cpp}!kill\-Thread@{kill\-Thread}}
\index{kill\-Thread@{kill\-Thread}!client.cpp@{client.\-cpp}}
\subsubsection[{kill\-Thread}]{\setlength{\rightskip}{0pt plus 5cm}void kill\-Thread (
\begin{DoxyParamCaption}
\item[{{\bf thread\-\_\-args} $\ast$}]{t\-\_\-arg}
\end{DoxyParamCaption}
)}}\label{client_8cpp_ab99831172d1d4bca2c79bb37c7c062df}


Método de liberación de los argumentos. 

Este método se encarga de liberar la memoria asignada a los argumentos pasados a los threads que ahora han terminado. \hypertarget{client_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}{\index{client.\-cpp@{client.\-cpp}!main@{main}}
\index{main@{main}!client.cpp@{client.\-cpp}}
\subsubsection[{main}]{\setlength{\rightskip}{0pt plus 5cm}int main (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{client_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}


Método principal del cliente. 

Este método inicializa el \hyperlink{class_socket}{Socket}, establece la conexión y realiza las acciones que se le hayan programado para comunicarse con el servidor. \hypertarget{client_8cpp_abbdd974364b0dba7bb0524ab8f115a03}{\index{client.\-cpp@{client.\-cpp}!recv\-Thread@{recv\-Thread}}
\index{recv\-Thread@{recv\-Thread}!client.cpp@{client.\-cpp}}
\subsubsection[{recv\-Thread}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ recv\-Thread (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{args}
\end{DoxyParamCaption}
)}}\label{client_8cpp_abbdd974364b0dba7bb0524ab8f115a03}


Thread de recepción de mensajes. 

Este método es ejecutado por un thread con el objetivo de recibir los mensajes por el socket, gestionarlos e imprimirlos por pantalla o tomar las medidas necesarias . \hypertarget{client_8cpp_a6511fc920cd92a0fe628df3f1a1f7e5a}{\index{client.\-cpp@{client.\-cpp}!send\-Thread@{send\-Thread}}
\index{send\-Thread@{send\-Thread}!client.cpp@{client.\-cpp}}
\subsubsection[{send\-Thread}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ send\-Thread (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{args}
\end{DoxyParamCaption}
)}}\label{client_8cpp_a6511fc920cd92a0fe628df3f1a1f7e5a}


Thread de envío de mensajes. 

Este método es ejecutado por un thread con el objetivo de enviar los mensajes y comandos que el usuario introduce por teclado. 

\subsection{Documentación de las variables}
\hypertarget{client_8cpp_ab36823025f12a809217f7771125658c2}{\index{client.\-cpp@{client.\-cpp}!connected@{connected}}
\index{connected@{connected}!client.cpp@{client.\-cpp}}
\subsubsection[{connected}]{\setlength{\rightskip}{0pt plus 5cm}bool connected}}\label{client_8cpp_ab36823025f12a809217f7771125658c2}


Variable de estado del programa. 

\hypertarget{client_8cpp_a9324389a5cdc532c6417a87ccafe18ce}{\index{client.\-cpp@{client.\-cpp}!finished@{finished}}
\index{finished@{finished}!client.cpp@{client.\-cpp}}
\subsubsection[{finished}]{\setlength{\rightskip}{0pt plus 5cm}bool finished}}\label{client_8cpp_a9324389a5cdc532c6417a87ccafe18ce}


Variable de estado del programa. 

