我在serversocket只接收到客户端传来文件的一半大小不到,我又不知道咋回事
哪位大哥能帮我改下面的代码?const
sendbyte =1000; //每次发送包的大小clientsocketButton.onclick
var
tsfile :tfilestream;
buff :pointer;
begin
tsfile:=tfilestream.create('g:\demo.dat' ,fmopenread);
repeat
getmem(buff ,1001);
if (tsfile.position+sendbyte)<tsfile.size then
begin
tsfile.readbuff(Buff^,sendbyte);
clientsocket.socket.sendbuff(buff^,sendbyte);
end
else
begin //拷内剩下的字节
tsfile.readbuff(buff^,tsfile.size-tsfile.position);
clientsocket.socket.sendbuff(buff^,tsfile.size-tsfile.position);
end;
freemem(buff,1001);
until tsfile.position>=tsfile.size;
tsfile.free
end;serversocket.onread
var
buff :pointer;
begin
getmem(buff,1001);
socket.recvdbuff( buff^,sendbyte);
streamfile.writebuff(buff^,sendbyte); //写入新文件
freemem(buff,1001);
//不知道应该咱改,最后一次好像不到1000字节end;
哪位大哥能帮我改下面的代码?const
sendbyte =1000; //每次发送包的大小clientsocketButton.onclick
var
tsfile :tfilestream;
buff :pointer;
begin
tsfile:=tfilestream.create('g:\demo.dat' ,fmopenread);
repeat
getmem(buff ,1001);
if (tsfile.position+sendbyte)<tsfile.size then
begin
tsfile.readbuff(Buff^,sendbyte);
clientsocket.socket.sendbuff(buff^,sendbyte);
end
else
begin //拷内剩下的字节
tsfile.readbuff(buff^,tsfile.size-tsfile.position);
clientsocket.socket.sendbuff(buff^,tsfile.size-tsfile.position);
end;
freemem(buff,1001);
until tsfile.position>=tsfile.size;
tsfile.free
end;serversocket.onread
var
buff :pointer;
begin
getmem(buff,1001);
socket.recvdbuff( buff^,sendbyte);
streamfile.writebuff(buff^,sendbyte); //写入新文件
freemem(buff,1001);
//不知道应该咱改,最后一次好像不到1000字节end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货