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 ; }