设为首页 加入收藏

TOP

【笔记本】第二阶段工作完成(三)
2017-10-10 12:05:51 】 浏览:3524
Tags:笔记本 第二 阶段 工作 完成
teFile: string; 166 167 const pvFileSize: Int64): Int64; 168 169 begin 170 FFileStream:= TFileStream.Create(FLocalFile, fmCreate or fmShareDenyWrite); 171 FRemoteFile:= pvRemoteFile; 172 FFileSize := pvFileSize; 173 downloadNextBlock(); 174 end; 175 176 procedure TSNTFileTransContext.downloadNextBlock; 177 var 178 lvPosition, lvSize: Int64; 179 lvBytes: TBytes; 180 begin 181 lvBytes := FCMDMsgPack.ForcePathObject('data').AsBytes; 182 FFileStream.Write(lvBytes[0], Length(lvBytes)); 183 if FFileStream.Size = FFileSize then exit; 184 185 FCMDMsgPack.clear(); 186 FCMDMsgPack.I['service.type'] := MSG_SERVICE_FILE; 187 FCMDMsgPack.I['msg.code'] := MSG_FILE_DOWNLOADING; 188 FCMDMsgPack.S['params.filename'] := FRemoteFile; 189 FCMDMsgPack.I['params.start'] := FFileStream.Position; 190 FCMDStream.Clear; 191 FCMDMsgPack.EncodeToStream(FCMDStream); 192 FDiocpContext.WriteObject(FCMDStream); 193 end; 194 195 procedure TSNTFileTransContext.OnRecvObject(pvObject: TObject); 196 var 197 lvMsgData: TSimpleMsgPack; 198 begin 199 lvMsgData:= TSimpleMsgPack.Create; 200 try 201 lvMsgData.DecodeFromStream(TMemoryStream(pvObject)); 202 // server error 203 if lvMsgData.I['result.code'] = -1 then 204 begin 205 sfLogger.logMessage(lvMsgData.S['result.msg']); 206 exit; 207 end; 208 sfLogger.logMessage(lvMsgData.S['msg.code']); 209 // logic 210 case lvMsgData.I['msg.code'] of 211 MSG_FILE_READYUPLOAD: 212 upload(lvMsgData.S['params.filename'],lvMsgData.S['params.token']); 213 MSG_FILE_UPLOADING: 214 uploadNextBlock(); 215 MSG_FILE_READYDOWNLOAD: 216 download(lvMsgData.S['params.filename'],lvMsgData.I['params.filesize']); 217 MSG_FILE_DOWNLOADING: 218 downloadNextBlock(); 219 MSG_ERR_NOTAUTHUPLOAD: 220 ;//没有上传权限 221 MSG_ERR_SPACEFULL: 222 ;//空间不足 223 MSG_ERR_NOTAUTHDOWNLOAD: 224 ;//没有下载权限 225 MSG_ERR_FILENOTFOUND: 226 ;//文件不存在 227 end; 228 finally 229 lvMsgData.Free; 230 end; 231 end;

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇咏南 DELPHI DATASNAP LINUX中间件 下一篇这两天测试软件发现的问题

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目