mouse0518 发表于 2009-9-28 11:35:32

ACE_Proactor如何传送大文件

ACE_Proactor框架中,如何传送大文件?

mouse0518 发表于 2009-10-9 09:51:01

急, ACE_Proactor如何传送大文件?

版主,在ACE_Proactor框架下,如何传送几百兆的大文件?

modern 发表于 2009-10-9 10:55:32

直接传就成了,楼主一兆大小的文件平时怎么传的

mouse0518 发表于 2009-10-9 17:05:27

你说的直接传,是用Initialize_write?还是用transmit_file?
我要传的文件都在50兆以上。
我都是用Initialize_write传,现在用Initialize_write传输的时候,涉及到传送的大小大于writebuffer时,就出错。请问,你有例子吗?

modern 发表于 2009-10-9 17:11:31

贴代码出来吧,Initialize_write,writebuffer都是啥东西呀!

mouse0518 发表于 2009-10-9 17:17:16

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;
}

mouse0518 发表于 2009-10-9 17:18:47

看看这段代码有什么问题?

mouse0518 发表于 2009-10-9 17:19:38

这段代码如果传送30M的文件就会出错

mouse0518 发表于 2009-10-9 17:26:13

版主帮我看看啊,我这边项目很急。谢谢了

mouse0518 发表于 2009-10-10 09:08:00

版主modern:
帮我看看啊,我贴的代码有什么问题?
页: [1] 2
查看完整版本: ACE_Proactor如何传送大文件