ACE_Proactor如何传送大文件
ACE_Proactor框架中,如何传送大文件?急, ACE_Proactor如何传送大文件?
版主,在ACE_Proactor框架下,如何传送几百兆的大文件? 直接传就成了,楼主一兆大小的文件平时怎么传的 你说的直接传,是用Initialize_write?还是用transmit_file?我要传的文件都在50兆以上。
我都是用Initialize_write传,现在用Initialize_write传输的时候,涉及到传送的大小大于writebuffer时,就出错。请问,你有例子吗? 贴代码出来吧,Initialize_write,writebuffer都是啥东西呀! m_mbFileBuffer.init(65536);
void TransmitFileToServer(char *pFileName)
{
if(pFileName == NULL)
return -1;
FILE *pFile = fopen(pFileName, "rt");
if(pFile == NULL)
return -1;
size_t fileSize = 0;
size_t readSize = 0;
size_t offset = 0;
fseek(pFile, 0, SEEK_END);
fileSize = ftell(pFile);
fseek(pFile, 0, SEEK_SET);
for(offset = 0; offset < fileSize; offset += readSize)
{
m_mbFileBuffer.rd_ptr(m_mbFileBuffer.base());
readSize = fread(m_mbFileBuffer.base(), 1, m_mbFileBuffer.size() - 1, pFile);
fseek(pFile, readSize, SEEK_CUR);
m_mbFileBuffer.wr_ptr(readSize);
if(m_ws.write(m_mbFileBuffer, readSize) == -1)
{
break;
}
}
fclose(pFile);
return 0;
} 看看这段代码有什么问题? 这段代码如果传送30M的文件就会出错 版主帮我看看啊,我这边项目很急。谢谢了 版主modern:
帮我看看啊,我贴的代码有什么问题?
页:
[1]
2