我用socket進行傳送文件及文件信息。先定義了一個結構如﹕
type 
   Tsend_file = record
     filename:string[255];   //文件名
     file_ole:Tstream;       //用于傳送文件內容
end;傳送方﹕
var send_file:Tsend_file;
    m:TmemoryStream;
begin
    m := Tmemorystream.create;
    m.loadfromfile('filename');
    send_file.filename:='filename' ;
    m.savetostream(send_file.file_ole);  //此句會報錯
    m.free;
    Clientsocket1.socket.sendbuf(send_file,sizeof(send_file));
end;接收方﹕(在TServerSocket 的 ONClientRead事件中)
var send_file:Tsend_file;
    m:TmemoryStream;
begin
    socket.receivebuf(send_file,socket.ReceiveLength) ;  //此句也報錯
    send_file.filename
    m := Tmemorystream.create;
    m.loadfromstream(send_file.ole) ;                    //此句也報錯
    m.savetofile(send_file.filename) ;            
end;