0

通过将文件分成单独的事务然后重新组合所有字节,我已经能够从我的 Windows Mobile 机器将大(大于 8000 字节)文件发送到远程桌面。

这是一个很大的痛苦,我想一次发送所有数据。我可以在 .Net 3.0 常规框架上做到这一点。

有任何想法吗?

这是按需提供的一部分(尽管我不确定代码是否有帮助,因为它更像是一个概念性问题)

        byte[] TableData = new byte[length];


        if (length > 8000)
            TableData = new byte[8000];




        int numTimes = (int)length / 8000;
        numTimes++;




        for (int i = 0; i < numTimes; i++)
        {


            if (i < numTimes - 1)//not the last stream
                TableData = new byte[8000];

            else
                TableData = new byte[length - (8000 * i)];


            ms.Read(TableData, 0, TableData.Length);


            sendSock.Send(TableData);
        }
4

1 回答 1

1

这是您通过套接字发送文件的方式吗?有几种方法,但我从未见过这种方法。您不需要为每次发送创建缓冲区,只需创建一次超出循环并使用它即可。

在我的 Windows Mobile 中,我使用如下内容:

byte[] buffer = new byte[8*1024]; // 8kb is ok
int iReads=0;
while ((iReads=ms.Read(buffer, 0, buffer.Length)) > 0)
{
   sendSock.Send(buffer, 0, iReads);
}
于 2013-09-04T20:43:42.470 回答