【发布时间】:2018-05-04 15:35:22
【问题描述】:
我正在实施代理。我可以收到来自服务器的响应,但未能将响应发送给客户端。
更详细地说,我只能渲染响应头内容,但无法发送消息正文。并且网页显示'内容编码错误'
//I could sending request to server successfully.
send(connfd_to_server, request, strlen(request), 0);
//receive response from server
char res_buf[1024];
while(1){
bzero(res_buf, 1024);
if(recv(connfd_to_server, res_buf, sizeof(res_buf),0) <=0){
break; //if recv failed, then message body is finished.
} //receive response using recv
send(connfd_to_client, res_buf, strlen(res_buf));
}
我也试过了:
char* response = (char*)malloc(strlen(res_buf));
char* res_line;
res_line = strtok(res_buf, "\r\n");
for(int i = 0; i<=11; i++){
strcat(response, res_line);
strcat(response, "\r\n");
res_line = strtok(NULL, "\r\n");
} //copy header content using strcat
while(res_line!= NULL){
memcpy(response, res_line, sizeof(res_line));
res_line = strtok(NULL, "\r\n");
} //copy message body as bytes using memcpy
then send response to client using send function.
但是,无论我使用哪个功能,消息正文都没有成功发送。 就像上面一个奇怪的符号所示 有什么提示吗?
在此先感谢
【问题讨论】: