gpt4 book ai didi

c++ - 无法使用 Winsock WSABUF 发送图像文件 (image/jpg)

转载 作者:行者123 更新时间:2023-11-28 06:19:15 25 4
gpt4 key购买 nike

我被困住了,我需要帮助。

我正在尝试编写正确的代码来发送回图像文件,以便网络浏览器可以呈现它。它可以很好地发回 text/html,但 image/* 不工作。

您可以看到代码和URL如下所示。

https://github.com/MagnusTiberius/iocphttpd/blob/master/iocphttpl/SocketCompletionPortServer.cpp

浏览器接收的只是几个字节的图像数据。

我尝试了 vector、std::string 和 const char* 来设置 WSABUF 的值,但仍然发送了相同的几个字节。

请告知缺少的部分是什么才能使这个工作正常进行。

提前致谢。

最佳答案

这是你的问题:

PerIoData->LPBuffer = _strdup(str.c_str());

_strdup 函数只复制到第一个 null,所以它不能用于复制二进制数据。如果您不想使用 C++ 库,请考虑使用 mallocmemcpy

替代实现(在 false 分支中)也是不正确的,因为它在 I/之前超出范围的对象 (vc) 中保存数据O完成了。你可以改为做类似的事情

vector<char> * vc = new vector<char>;

关于c++ - 无法使用 Winsock WSABUF 发送图像文件 (image/jpg),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29593406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com