各位老大,我以苦闷,我实在找不出哪里错了。救命呀。
SERVER
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;type
  TForm1 = class(TForm)
    ServerSocket1: TServerSocket;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
  private
  liu:tfilestream;
   q:integer;
   { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var kk:string;
begin
if opendialog1.Execute then
begin
kk:=extractfilename(opendialog1.FileName);
liu:=tfilestream.Create(opendialog1.FileName,fmopenread);
q:=liu.Size;
serversocket1.Socket.Connections[0].SendText('m'+kk);
end;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var jssj:string;
buf:array[0..8000] of byte;
begin
jssj:=socket.ReceiveText;
if jssj='0' then
begin
serversocket1.Socket.Connections[0].SendText('zbok'+inttostr(q));
end;
if jssj='go' then
begin
if q>8000 then
begin
liu.Read(buf,8000);
serversocket1.Socket.Connections[0].SendBuf(buf,8000);
q:=q-8000;
end
else
liu.Read(buf,q);
serversocket1.Socket.Connections[0].SendBuf(buf,q);
end;
if jssj='isend' then
begin
liu.Free;
end;
end;end.
CLIENT
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
jssj,mingzi:string;
liu:tfilestream;
q:integer;
buf:array[0..8000] of byte;
begin
jssj:=socket.ReceiveText;
if copy(jssj,1,length(jssj)-1)='m' then
begin
mingzi:=copy(jssj,2,length(jssj)-1);
socket.SendText('0');
end;
if copy(jssj,1,length(jssj)-1)='zbok' then
begin
liu:=tfilestream.Create('c:\'+mingzi,fmcreate);
q:=strtoint(copy(jssj,2,length(jssj)-1));
socket.SendText('go');
end
else
begin
if q>8000 then
begin
socket.ReceiveBuf(buf,8000);
liu.Write(buf,8000);
q:=q-8000;
socket.SendText('go');
end
else
begin
socket.ReceiveBuf(buf,q);
liu.Write(buf,q);
socket.SendText('isend');
liu.Free;
end;
end;
end;