我正在编写一个网络代理,它与可以翻译为 ASCII 文本的网页配合得很好。但是,当我尝试查看包含二进制数据的页面(Youtube.com 是我一直在使用的页面)时,某个地方出现了内存泄漏,并且相同的几个字符会在我的字符串末尾一遍又一遍地重复'正在发送给客户(并且会出现在他们显然不应该出现的其他地方)。
以下是我的代码的相关部分。SendHTTPResponse 是一个使用代理将网页的响应发送给客户端的函数,并且可以正常工作。
有没有人有任何见解?
int numBytes;
char temp[3000];
memset(temp, '\0', 3000);
numBytes = Read(internetSocket, temp, 2999);
while (errno = 0, numBytes > 0 || errno == EINTR)
{
SendHTTPResponse(socket, temp, numBytes);
memset(temp, '\0', 3000);
numBytes = Read(internetSocket, temp, 2999);
}