| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hzUdpClient::RecvChain | (hzChain&,) |
Declared in file: hzUdpClient.h
Defined in file : hzUdpClient.cpp
Function Logic:
Function body:
hzEcode hzUdpClient::RecvChain (hzChain& C)
{
_hzfunc("hzUdpClient::Recv(hzChain&)") ;
uint32_t nRecv ;
C.Clear() ;
if (m_nSock == 0)
{
hzerr(E_NOSOCKET, "Client has no connection") ;
return E_NOSOCKET ;
}
if ((nRecv = recvfrom(m_nSock, m_pack.m_data, HZ_MAXPACKET, 0,(struct sockaddr*) &m_SvrAddr, &m_SvrLen)) < 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 ;
}
C.Append(m_pack.m_data, nRecv) ;
for (;;)
{
nRecv = recvfrom(m_nSock, m_pack.m_data, HZ_MAXPACKET, 0,(struct sockaddr*) &m_SvrAddr, &m_SvrLen) ;
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 ;
}
if (nRecv == 0)
break ;
C.Append(m_pack.m_data, nRecv) ;
}
return E_OK ;
}