VC++ send 发送图片出现乱码?解决办法

VC++ send 发送图片出现乱码?
我在做一个http服务器,现在我回复的时候用send函数html文件可以好使。但是图片用send回复过去之后都是乱码。我全部都是二进制读文件。我试了把读到的文件放入本机是好使的。这是怎么回事?

部分代码如下:
//read and send file
send(pass, "HTTP/1.1 200 OK\r\n\r\n", sizeof("HTTP/1.1 200 OK\r\n\r\n"), 0);

//get length of file
in_file.seekg(0, ios::end);
int length = in_file.tellg();
in_file.seekg(0, ios::beg);

//allocate memory
char* buffer = new char[length];
in_file.read(buffer, length);
in_file.close();

send(pass, buffer, length, 0);
//release memory
delete[] buffer;

}

//only close socket, can message be sent
closesocket(pass);

------解决方案--------------------
一个字符串常量,它是以\0结束的,分配空间的时候,这个\0也是考虑在内的,相当于:
char buff[] = "123";
那么这个buff的大小显然是4而不是3,你sizeof("123")其实等于sizeof(buff),所以你多发了一个\0,这是可以肯定的,只是我不确定多发的这个\0是否有影响而已。