|If you are sending pure binary data then forget about functions that treat byte sequences as zero terminated strings. Don't use strcat but memcpy should be okay to move bytes here and there if you use it correctly. Along with your binary data you should store the length/size of the data in an int or size_t variable. If you are using C++ you could simply use an std::vector for this job.
void Append(const char* data, size_t size)
memcpy(m_Bytes+m_Size, data, size);
static const char appendable = "abcdefgh";
std::copy(appendable, appendable+sizeof(appendable)/sizeof(appendable), std::back_inserter(bytes));