zoukankan      html  css  js  c++  java
  • Socket方法LAN多线程文件传输

    1.思维:为了实现各种文件的大小可以被发送和接收的,它可以被设置为发送和接收缓冲器环。并记录文件的位置读取,假设读入缓冲区的字节的特定数目大于缓冲区的大小较小。然后该文件被发送,退出发送周期,关闭连接。和Csocket它被阻止。收到发送端发送的全部内容,直到发送端连接关闭。接收端退出接收循环。

    //循环发送文件

    2.主要代码

    发送端:

    do
    {
    file.Seek(step,CFile::begin);
    over=file.Read(buffer,BUFFERSIZE);//文件读入缓冲
    err=sockClient.Send(buffer,over);
    if( BUFFERSIZE>over )
    break; //缓冲区的字节数小于缓冲区,也就是文件小于一个缓冲区,退出
    step+=err; //下一次从step開始读文件

    }while( true);

    sockClient.close();

    接收端:

    while( true )
    {
    finish=fileListen.Receive(buffer,BUFFERSIZE);
    if(0==finish)
    break;//client发送连接已经关闭,发送完成
    file.Write(buffer,finish);
    step+=finish;//写文件的位置
    }

    注意:合理设置缓冲区的大小,该方法是低效率,是不是更开放的线程可以增加速度?

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    单据的多个状态字段
    Win7 如何阻止程序联网
    强制关机.bat
    Delphi Class of
    坐标转换 GetCursorPos与转换
    Delphi 的RTTI机制浅探-2
    Delphi 的RTTI机制浅探-1
    Delphi 的RTTI机制-3
    Delphi 的RTTI机制-2
    Delphi 的RTTI机制-1
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4732844.html
Copyright © 2011-2022 走看看