Return Type | Function name | Arguments |
---|---|---|
hzEcode | hzUdpClient::SendChain | (hzChain&,) |
Declared in file: hzUdpClient.h
Defined in file : hzUdpClient.cpp
Function Logic:
Function body:
hzEcode hzUdpClient::SendChain (hzChain& C) { _hzfunc("hzUdpClient::Send(hzChain&)") ; chIter ci ; char* i ; uint32_t nSend ; uint32_t nSofar ; if (m_nSock == 0) return E_NOSOCKET ; if (!C.Size()) return E_NODATA ; ci = C ; nSofar = 0; for (nSend = 0,i = m_pack.m_data ; !ci.eof() && nSend < HZ_MAXPACKET ; *i = *ci, i++, nSend++, ci++) ; nSofar = nSend ; if (sendto(m_nSock, m_pack.m_data, nSend, 0,(struct sockaddr*) &m_SvrAddr, m_SvrLen) < 0) { close(m_nSock) ; m_nSock = 0; hzerr(E_SENDFAIL, "Could not send to host (%s) on port %d", *m_Hostname, m_nPort) ; return E_SENDFAIL ; } for (; nSofar < C.Size() ;) { for (nSend = 0,i = m_pack.m_data ; !ci.eof() && nSend < HZ_MAXPACKET ; *i = *ci, nSend++, i++, ci++) ; nSofar += nSend ; if (!nSend) break ; if (sendto(m_nSock, m_pack.m_data, nSend, 0,(struct sockaddr*) &m_SvrAddr, m_SvrLen) < 0) { close(m_nSock) ; m_nSock = 0; hzerr(E_SENDFAIL, "Could not send to host (%s) on port %d", *m_Hostname, m_nPort) ; return E_SENDFAIL ; } } return E_OK ; }