Page principale | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

NetConnect.cpp

Aller à la documentation de ce fichier.
00001 /*! \file NetConnect.cpp
00002     \brief Informations sur une connection.
00003 
00004     Informations réseau et système sur une connection.
00005 
00006     \author     aerith (http://aerith.fr)
00007     \version    1.0
00008     \date       22/05/2008
00009 */
00010 
00011 #include    "NetConnect.h"
00012 
00013 unsigned int    NetConnect::idMax = 0;
00014 
00015 NetConnect::NetConnect(unsigned int iCrypt)
00016 {
00017     id          = ++idMax;
00018     sock        = 0;
00019     ip          = NET_DEF_IP;
00020     port        = NET_DEF_PORT;
00021     bufferSize  = 0;
00022     *buffer     = '\0';
00023 #if USE_SSL == 1
00024     sslFD       = NULL;
00025 #endif
00026     crypt       = iCrypt;
00027 }
00028 
00029 NetConnect::~NetConnect()
00030 {
00031 
00032 }
00033 
00034 void    NetConnect::BinSend(const char *pBuffer, unsigned int iSize)
00035 {
00036     unsigned int    sizeSend = 0;
00037     TRY
00038 
00039     if(sock <= 0)
00040         THROW(ERROR_C_CONNECT)
00041 
00042 #if USE_SSL == 1
00043     if(crypt == NET_T_SSL)
00044         sizeSend = SSL_write(sslFD, pBuffer, iSize);
00045     else
00046 #endif
00047         sizeSend = send(sock, pBuffer, iSize, 0);
00048 
00049     if(sizeSend != iSize)
00050         THROW(ERROR_C_SEND)
00051 
00052     CATCH
00053 }
00054 
00055 void    NetConnect::Send(const char *pBuffer, ...)
00056 {
00057     char    temp[NET_BUFFER];
00058     va_list args;
00059 
00060     va_start(args, pBuffer);
00061     vsprintf(temp, pBuffer, args);
00062     va_end(args);
00063 
00064     BinSend(temp, strlen(temp));
00065 }
00066 
00067 void    NetConnect::Receive()
00068 {
00069     unsigned int        sizeRecv;
00070     TRY
00071 
00072     if(sock <= 0)
00073         THROW(ERROR_C_CONNECT)
00074 
00075     memset(buffer, 0, NET_BUFFER);
00076 
00077 #if USE_SSL == 1
00078     if(crypt == NET_T_SSL)
00079         sizeRecv = SSL_read(sslFD, buffer, NET_BUFFER);
00080     else
00081 #endif
00082         sizeRecv = recv(sock, buffer, NET_BUFFER, 0);
00083 
00084     if(sizeRecv <= 0)
00085         THROW(ERROR_C_RECEIVE)
00086 
00087     bufferSize = sizeRecv;
00088 
00089     CATCH
00090 }

Généré le Thu Jun 12 09:12:30 2008 pour A.I.F. par  doxygen 1.3.9.1