我用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;
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;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货