能发送完,接收也可以完成,但是收完了后我不能运行发过去的那个文件,说正在被暂用,我又不能释放,一释放就没了,各位大哥帮我看看。
Server
procedure TForm1.Button1Click(Sender: TObject);
var a:pchar; b:tfilestream; c:integer;
begin
if opendialog1.Execute then
b:=tfilestream.Create(opendialog1.FileName,fmopenread);
c:=b.Size;
getmem(a,c);
b.Read(a^,c);
serversocket1.Socket.Connections[0].SendBuf(c,sizeof(integer));
serversocket1.Socket.Connections[0].SendBuf(a^,c);
freemem(a,c);
b.Free;
end;
Client
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
a:pchar;
b:tfilestream;
c:integer;
d:integer;
begin
c:=socket.ReceiveLength;
if c=0 then exit;
socket.ReceiveBuf(d,sizeof(integer));
b:=tfilestream.Create('c:\1.mp3',fmcreate);
while d>0 do
begin
getmem(a,c);
socket.ReceiveBuf(a^,c);
b.Write(a^,c);
dec(d,c);
freemem(a,c);
end;
end;