Read a packet from the socket into the client buffer.

Return TypeFunction nameArguments
hzEcodehzUdpClient::RecvPkt(hzPacket*,uint32_t&,)

Declared in file: hzUdpClient.h
Defined in file : hzUdpClient.cpp

Function Logic:

0:START 1:unknown 2:items 3:Return E_ARGUMENT 4:unknown 5:items 6:Return E_NOSOCKET 7:nRecv 8:unknown 9:Return E_NODATA 10:unknown 11:items m_nSock items 12:Return E_RECVFAIL 13:pData items 14:Return E_OK

Function body:

hzEcode hzUdpClient::RecvPkt (hzPacket* pData)uint32_t& nRecv, 
{
   //  Read a packet from the socket into the client buffer.
   //  
   //  Arguments: 1) pData The packet recepticle
   //     2) nRecv Reference to number of bytes received
   //  
   //  Returns: E_ARGUMENT If the packet recipticle is not supplied
   //     E_NOSOCKET If the connection has been closed
   //     E_NODATA If no data was recieved
   //     E_RECVFAIL If the socket read operation fails
   //     E_OK  If operation successfull
   _hzfunc("hzUdpClient::Recv(buf,recv,max)") ;
   if (!pData)
   {
       hzerr(E_ARGUMENT, "No IP recepticle supplied") ;
       return E_ARGUMENT ;
   }
   if (m_nSock == 0)
   {
       hzerr(E_NOSOCKET, "Client has no connection") ;
       return E_NOSOCKET ;
   }
   //  Get response
   //  nRecv = recvfrom(m_nSock, pData->m_data, HZ_MAXPACKET, 0, (struct sockaddr*) &m_SvrAddr, &m_SvrLen) ;
   nRecv = recvfrom(m_nSock, pData->m_data, HZ_MAXPACKET, 0,(SOCKADDR*) &m_SvrAddr, &m_SvrLen) ;
   if (nRecv == 0)
       return E_NODATA ;
   if (nRecv < 0)
   {
       close(m_nSock) ;
       m_nSock = 0;
       hzerr(E_RECVFAIL, "Could not recv from server (%s) on port %d", *m_Hostname, m_nPort) ;
       return E_RECVFAIL ;
   }
   pData->m_data[nRecv] = 0;
   threadLog("Client sock %d recv %d bytes\n", m_nSock, nRecv) ;
   return E_OK ;
}