提问人:Grahn 提问时间:2/6/2022 最后编辑:Maarten BodewesGrahn 更新时间:2/6/2022 访问量:117
将二进制字符数组放在文件 C++ 中
Put a binary char array in a file C++
问:
我正在编写一个程序,其中一台服务器向客户端发送二进制消息。 我收到服务器发送的二进制数据,但随后无法将其正确放入文件中。 然后目标是使用 openSSL 解密文件。
这是我的代码:
int client::_writeFile()
{
char buf[bytes_received * bytes_received];
recv(this->_socket, buf, bytes_received, 0);
std::string const file("files/recv");
std::ofstream f(file.c_str(), std::ios::binary);
for (int i = 0; i < bytes_received + 1; i++)
{
f.write(&buf[i],sizeof(buf[i]));
}
f.close();
system("openssl enc -d -aes-256-cbc -in files/recv -out files/decrypted.txt -pass pass:.key");
return (SUCCESS);
}
提前感谢您的帮助!
答:
0赞
pm100
2/6/2022
#1
你需要一些类似的东西
char buf[1000];
std::string const file("files/recv");
std::ofstream f(file.c_str(), std::ios::binary);
while(true){
int count = recv(this->_socket, buf, sizeof(buf), 0);
if (count ==0)
break;
f.write(buf,count);
}
f.close();
这假定远程端在完成数据发送后关闭连接
评论
char buf[bytes_received * bytes_received];
recv
bytes_received
bytes_received+1