将文件直接写入TcpClient而不将其存储在内存中

时间:2015-05-15 16:38:24

标签: c# sockets network-programming tcpclient tcplistener

我有一个1 GB的文件需要写入TcpClient对象。如果不将整个文件读入内存,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

你必须在某点将其读入内存,尽管你显然不需要一次完成所有操作!

只需使用BinaryReader.Read并阅读" n"一次的字节数,如:

        BinaryReader reader = new BinaryReader(new FileStream("test.dat", FileMode.Open));
        int currentIndex = 0;
        byte[] buffer = new byte[100];

        while (reader.Read(buffer, currentIndex, 100) > 0)
        {
            //Send buffer
            currentIndex += 100;
        }