最好是先发送长度,再分块发送数据,因为有的数据太大,一次不一定发完!呵呵!例如:const sendsz=2048; var ct,len,time,lastb:integer;begin len:=nnnnn; time:=len div sendsz; // 一共发送几次! lastb:=len-time*sendsz; // 剩余字节! Socket.SendBuf(len,sizeof(integer)); for ct:=1 to time do Socket.SendBuf(buf[(ct-1)*sendsz]{buf从0开始,从1开始+1即可},sendsz); if lastb>0 then Socket.SendBuf(buf[(ct-1)*sendsz],lastb); end;