//看了半天,才发现一个BUG。
procedure TForm1.btnConnectClick(Sender: TObject);
begin
  try
    cs.Address:=edtIPAddress.Text;
    cs.Port:=2000;
    cs.Open;
  finally //应该改为Except
    StatusBar1.Panels[0].Text:='连接发生错误!';
  end;
end;

解决方案 »

  1.   

    问题在这一句:
    Socket.SendText(MP_FILEPROPERTY+inttostr(Trunc(fsSend.Size/iBYTEPERSEND)+1));
    你没有给iBYTEPERSEND付值,当然有除零错误了!!!
      

  2.   

    iBYTEPERSEND该给什么值呢/
    我给了1024,但还是有错误提示,提示什么地址错误!
    帮人帮到底,给看看看!
    一定给分!
      

  3.   

    1,建议把fssend设成全局变量,这样只要打开一次文件,用完后释放。
    2,你的接收长度iRecvLength也没有赋值,所以收不到数据。建议把它的长度设为iRecvLength:=socket.ReceiveLength
    3,iBYTEPERSEND大小受socket缓冲大小,建议小于2048字节
    程序还有其他一些小问题,你先自己调试一下试试。