CS结构软件自动升级实现(三) - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-16
tOut.write(Config.getCmd(AUPD.BYE));//结束 218 return false; 219 } 220 //读取命令 221 len = socketIn.read(bCmd,0,8); 222 if(len!=8) 223 { 224 Config.print(socket.getInetAddress()+":读取命令失败,CMD="+bCmd); 225 socketOut.write(Config.getCmd(AUPD.BYE));//结束 226 return false; 227 } 228 if(Config.parseCmd(bCmd).equals(AUPD.RECEIVED_FILE_ABSOULT))//成功 229 { 230 Config.print(socket.getInetAddress()+":接收文件路径成功,"+path); 231 return true; 232 }else if(Config.parseCmd(bCmd).equals(AUPD.BYE))//失败 233 { 234 Config.print(socket.getInetAddress()+":接收文件路径失败,"+path); 235 return false; 236 }else//异常 237 { 238 return false; 239 } 240 }catch(Exception e) 241 { 242 Config.print(socket.getInetAddress()+":发送文件路径失败,"+path); 243 e.printStackTrace(); 244 return false; 245 } 246 } 247 //false.失败 true.成功 248 private boolean sendFile(UpdFile file) 249 { 250 try 251 { 252 File f = new File(Config.formatPath(file.getPath())+file.getName()); 253 if(!f.exists()||!f.isFile()) 254 { 255 Config.print(file+",不存在,无法更新"); 256 return false; 257 } 258 Config.print(socket.getInetAddress()+":开始传输文件>>"+file); 259 socketOut.write(Config.getCmd(AUPD.SEND_FILE_ABSOULT));//发送文件全路径 260 String fileAbsPath = Config.formatPath(file.getPath())+file.getName(); 261 if(!sendFileAbsPath(fileAbsPath)) 262 { 263 return false; 264 } 265 socketOut.write(Config.getCmd(AUPD.START_TRANSMIT));//开始传输 266 FileInputStream fin = new FileInputStream(f); 267 //文件数据缓冲区 268 byte[] data = new byte[AUPD.DATA_SIZE]; 269 // 发送数据缓冲区 270 byte[] buffer = new byte[AUPD.BUFFER_SIZE]; 271 int len = -1; 272 while ((len=fin.read(data)) != -1) 273 { 274 // 标识为数据段 275 buffer[0] = AUPD.MARK_DATA_SECT; 276 Config.copyArray(buffer,Config.getLen(len),1,0,4);//存放长度 277 // 组合数据包 278 for (int i=0; i<len; i++) 279 buffer[i+5] = data[i]; 280 socketOut.write(buffer,0,len+5); 281 } 282 // 标识为数据段已结束,并发送至服务器 283 buffer[0] = AUPD.MARK_DATA_END; 284 socketOut.write(buffer,0,1); 285 socketOut.flush(); 286 fin.close(); 287 //判断客户端是否收到 288 len = socketIn.read(bFlag,0,1); 289 if(len!=1 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于CS结构软件自动升级实现(三) - 编程入门网的所有评论