拿到一个文档,要发送一文件给对方,要在报头加上文件(文件小于1024字节)的长度(占前四个字节)比如要发送一个大小为789字节的文件aa.txt发送的格式是:
0789+数据流(即文件aa.txt)混合发送,以前都没想过~~
哪位兄弟做过,说说~~

解决方案 »

  1.   

    那你用TransmitFile来解决,里面有参数指定在发送文件数据前,先发送的数据
      

  2.   

    定义一个结构
    struct file{
     int length;
     char* ...
    };
      

  3.   

    如果单纯的发文件流你怎么发不还是定义一个buffer,然后把文件数据放进去,再发送吗加个头部就是定义buffer的时候定义大一点,先在开始放大小,后面放文件数据
      

  4.   

    int len = 1024;
    TRANSMIT_FILE_BUFFERS head;
    head.Head = &len;       //可能要转换一下
    head.HeadLength = sizeof(int);
    head.Tail = 0;
    head.TailLength = 0; TransmitFile(sock,  //客户端的连接socket
            hFile,   //abc.exe的文件句柄
            0,       //发送的文件数据长度
            0,        //每次发送的大小                     
            0,         //重叠IO,不会就填0,会的就去折腾
            &head,     //指定在发送文件数据前和后,先和后发送的数据
            TF_USE_KERNEL_APC | TF_WRITE_BEHIND);
      

  5.   

    写了个demo测试成功了,没问题
    一样的发送
    现在才晓得,混合还能一起发送~~~~