c++ - 使用 windows sockets(C++) 接收网页,但得到了一些意想不到的词

标签 c++ sockets http

我正在尝试使用 http GET 获取带有套接字的网页。我确实获取了该页面,但是有一些小问题。 有时我没问题,但有时我用错误的字符得到它,例如:

        **<td class="c_ba2636">09</t

1ff8 d>**

应该是:

        <td class="c_ba2636">09</td>

我不知道为什么有一个“1ff8”和一些“\r\n”。 它时不时地发生在这里和那里。有时它会像这样发生: 06

同样应该是:

   <td class="c_ba2636">06</td>

这是我从套接字接收和保存页面的方式:

                     ofstream out("webpage.html");
         char text[2050]="";

         int recvbytes=0;
         string content;
         while ( (recvbytes = recv(sock, text, 2048, 0)) > 0)
         {
             content=string(text,recvbytes);
             out << content.c_str();
             //System::Console::Write(gcnew String(content.c_str()));
         }

         closesocket(sock);
         out.close();

我试过 :out << text;它不起作用。 请问有人知道我的代码有什么问题吗? 我正在使用 VS2010,这是一个 winform 程序。

最佳答案

如果您输入的文本是 UTF8 编码并且包含超出 ASCII 空间的字符,这可能是正常的

关于c++ - 使用 windows sockets(C++) 接收网页,但得到了一些意想不到的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23827608/

相关文章:

c++ - 在使用头文件的c++中没有匹配的调用函数

c++ - 调用另一个exe并获取值

Java - UDP 通过套接字发送数据.. 不推荐。所有数据

c# - 使用 IIS 但不使用 WCF 的基本 HTTP 服务

php - Ubuntu PHP5/Apache2 - 显示 500 错误而不是错误消息

c++ - 标准 C 函数声明语法 (WINAPI)

c++ - SDL 使应用程序崩溃?

database - 关于连接到 Postgres 数据库的首选方式的问题

node.js - Node 套接字 IO 客户端 Windows 路径太长无法安装

android - 内容长度 > 0 但正文为空的 HTTPS 请求