c语言打印乱码_怎么解决http响应打印出乱码的有关问题

本文介绍了一段C语言代码,用于通过HTTP请求获取网页内容,但遇到了打印和保存文件时出现乱码的问题。代码中使用了WSAStartup、socket、connect、send和recv等函数进行网络连接和数据传输。解决方案可能涉及字符编码转换和正确处理HTTP响应头。
摘要由CSDN通过智能技术生成

C/C++ code#include

#include

int main()

{

WSADATA wsaData;

int Ret;

if ((Ret = WSAStartup(MAKEWORD(1,1), &wsaData)) != 0)

{

printf("WSAStartup failed with error %d\n", Ret);

}

SOCKET socketfd;

struct sockaddr_in addr;

int connectfd = 0;

char strsend[255], buffer[1024*1024];

memset((void*)strsend, 0, sizeof(strsend));

memset((void*)buffer, 0, sizeof(buffer));

memset((void*)&addr, 0, sizeof(addr));

addr.sin_family = AF_INET;

addr.sin_port = htons(80);

addr.sin_addr.S_un.S_addr = inet_addr("222.186.13.209");

socketfd = socket(AF_INET, SOCK_STREAM, 0);

if(socketfd < 0)

{

printf("socket fail %d\n");

}

connectfd = connect(socketfd, (struct sockaddr*)&addr, sizeof(addr));

if(connectfd < 0)

printf("connect fail\n");

strcpy(strsend, "GET /index.html HTTP/1.0\r\nHost:www.soshu.cn\r\n\r\n");

connectfd = send(socketfd, strsend, sizeof(strsend), 0);

connectfd = recv(socketfd, buffer, sizeof(buffer), 0);

if(connectfd == SOCKET_ERROR)

{

printf("%d\n",WSAGetLastError());

}

else printf("%s\n",buffer);

FILE* pFile = fopen("11.html","wb");

fprintf(pFile,buffer);

fclose(pFile);

//close(socketfd);

if (WSACleanup() == SOCKET_ERROR)

{

printf("WSACleanup failed with error %d\n", WSAGetLastError());

}

getchar();

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值