快速业务通道

CS结构软件自动升级实现(三) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

CS结构软件自动升级实现(三)

时间:2011-06-29 blogjava rochoc

AUpdSrvProc.java服务端服务线程,关键代码之一:

 1/** *//********************************************************************  2 * 项目名称        :rochoc<p>  3 * 包名称         :com.rochoc.autoupdate<p>  4 * 文件名称        :AUpdSrvProc.java<p>  5 * 编写者         :kfzx-luoc<p>  6 * 编写日期        :2008-12-22<p>  7 * 程序功能(类)描述  :<p>  8 * 自动更新服务端处理进程  9 * 程序变更日期      : 10 * 变更作者        : 11 * 变更说明        : 12********************************************************************/ 13package com.rochoc.autoupdate; 14 15import java.io.File; 16import java.io.FileInputStream; 17import java.io.IOException; 18import java.io.InputStream; 19import java.io.OutputStream; 20import java.io.StringReader; 21import java.net.Socket; 22import java.util.HashMap; 23 24/** *//** 25 * @author kfzx-luoc 26 * 27 * TODO To change the template for this generated type comment go to 28 * Window - Preferences - Java - Code Style - Code Templates 29 */ 30public class AUpdSrvProc extends Thread 31{ 32  private Socket socket = null; 33  private InputStream socketIn; 34  private OutputStream socketOut; 35  private Config config = Config.getInstance();//配置文件对像 36  private ClientVerParser cvPaser = null; 37  private HashMap cFiles = new HashMap(); 38 39  byte bFlag [] = new byte[1];//标识位 40  byte bCmd[] = new byte[8];//命令 41   42  public AUpdSrvProc(Socket socket) 43  { 44    this.socket = socket; 45  } 46  /** *//** 47   * 接收客户端的升级请求,并进行处理 48   */ 49  public void run() 50  { 51    try 52    { 53      config.refresh();//重新更新配置信息 54      socketIn = socket.getInputStream(); 55      socketOut = socket.getOutputStream(); 56      byte datahead [] = new byte[5];//数据头部,第一位用于标识是数据,后四位为长度 57      byte buffer[] = new byte[AUPD.BUFFER_SIZE];//存放数据头部和数据头部 58      byte data[] = new byte[AUPD.DATA_SIZE];//存放具体的数据内容   59      while(true) 60      { 61        //读取标志位 62        int len = socketIn.read(bFlag,0,1); 63        if(len!=1) 64        { 65          Config.print(socket.getInetAddress()+":读取标识位失败"); 66          socketOut.write(Config.getCmd(AUPD.BYE));//结束 67          break; 68        } 69        if(bFlag[0]==AUPD.CMD_DATA_SECT)//命令行 70        { 71          len = socketIn.read(bCmd,0,8); 72          if(len!=8) 73          { 74            Config.print(socket.getInetAddress()+":读取命令失败,CMD="+bCmd); 75            socketOut.write(Config.getCmd(AUPD.BYE));//结束 76            break; 77          } 78    

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号