C++;:将一个大的二进制文件(2GB到4GB)以char*格式保存到RAM? 我正在C++中使用一个强的文件传输程序,它将一个文件转换成二进制,保存一个字符中的字节,然后通过一个强> TCP 连接将该字符发送给另一台计算机。然后,另一台计算机在本地重新创建该文件。这个程序确实有效,但我遇到了一个大文件的大问题!我无法分配足够的数组索引来包含字节!例如,如果我想发送一个600MB的文件,我需要一个具有6亿索引的char*。这很有效。但一旦我再往上走,程序就无法分配内存,我就会出错
我的一个朋友建议我将文件分割成块,然后逐块进行传输,但是这会带来很多其他挑战,需要我基本上重写整个程序 有没有办法绕过这个问题 我的一个朋友建议我将文件分割成块,然后逐块进行传输,但是这会带来很多其他挑战,需要我基本上重写整个程序 这就是为什么它被称为计算机科学的原因,也是为什么一旦你掌握了这些挑战,你就可以去城里赚大钱的原因 我的一个朋友建议我将文件分割成块,然后逐块进行传输,但是这会带来很多其他挑战,需要我基本上重写整个程序C++;:将一个大的二进制文件(2GB到4GB)以char*格式保存到RAM? 我正在C++中使用一个强的文件传输程序,它将一个文件转换成二进制,保存一个字符中的字节,然后通过一个强> TCP 连接将该字符发送给另一台计算机。然后,另一台计算机在本地重新创建该文件。这个程序确实有效,但我遇到了一个大文件的大问题!我无法分配足够的数组索引来包含字节!例如,如果我想发送一个600MB的文件,我需要一个具有6亿索引的char*。这很有效。但一旦我再往上走,程序就无法分配内存,我就会出错,c++,file-io,tcp,ftp,C++,File Io,Tcp,Ftp,我的一个朋友建议我将文件分割成块,然后逐块进行传输,但是这会带来很多其他挑战,需要我基本上重写整个程序 有没有办法绕过这个问题 我的一个朋友建议我将文件分割成块,然后逐块进行传输,但是这会带来很多其他挑战,需要我基本上重写整个程序 这就是为什么它被称为计算机科学的原因,也是为什么一旦你掌握了这些挑战,你就可以去城里赚大钱的原因 我的一个朋友建议我将文件分割成块,然后逐块进行传输,但是这会带来很多其他挑战,需要我基本上重写整个程序 这就是为什么它被称为计算机科学,也是为什么一旦你掌握了这些挑战,你
这就是为什么它被称为计算机科学,也是为什么一旦你掌握了这些挑战,你就可以去城里赚大钱。我不知道转换成二进制意味着什么,但你不应该分配600MB+的内存,而是使用缓冲 例如,要从磁盘发送文件,请执行以下操作:
- 打开文件
- 读取缓冲区中的部分文件
- 通过TCP连接发送缓冲区(重复,直到完成)
- 打开文件
- 缓冲区中的读取部分
- 转换缓冲区
- 发送缓冲区(重复)
- 打开文件
- 读取缓冲区中的部分文件
- 通过TCP连接发送缓冲区(重复,直到完成)
- 打开文件
- 缓冲区中的读取部分
- 转换缓冲区
- 发送缓冲区(重复)