可将文件分割后发送,发送端的代码如下:
var
FileFrom,FileTo,Send,Temp:String;
MemStr:TMemoryStream;
SendTimes,i:Integer;
SendState:String;
Socket:TCustomWinSocket;
const SckMaxDataLength:Integer=2048;
begin
MemStr:=TMemoryStream.Create;
MemStr.LoadFromFile(FileFrom);
SetString(Send,PChar(MemStr.Memory),MemStr.Size);
if Length(Send) mod SckMaxDataLength=0 then SendTimes:=0
else SendTimes:=1;
Inc(SendTimes,Length(Send) div SckMaxDataLength);
for i:=0 to SendTimes-1 do
begin
if i=0 then SendState:='0'//只有一个包
else if i=SendTimes-1 then SendState:='2'//后面还有包
else SendState:='1';//最后一个包
Temp:=Format('%s%s',[SendState,Copy(Send,i*SckMaxDataLength+1,SckMaxDataLength)]);
Socket.SendText(Temp);
end;
MemStr.Free;
end;
吃饭去也,接收端的自己写吧。