我想实现下述功能,当客户端给出一条指令请求时,服务器上将相对应数据库的表的某个属性值自减1然后再想客户端发送修改后该属性的值!!怎么实现,求给个思路

解决方案 »

  1.   

    最简单的做法是CS架构,直接操作DB,当然也是最不安全
    如果要做顾三层架构,按以下方法:
    1、客户端使用Socket向服务端发送数据包,或者使用中间件
    2、服务器接收数据包后操作DB
    3、服务器将操作结果向客户端返回,使用Socket或者直接使用中间件
    这种方法不是很复杂,和直接操作DB加了一个中间层,都差不多如果直接使用Socket则需要自己定义数据协议
      

  2.   

    AppServer::Resp(const string& cmd){
     ParseCmd(cmd,&userCmd)
     switch(userCmd.nCmd){
     case INC:
      {
       lockTable(name);
       db.excute("update mytable set x=x-1 where...");
       int nValue=rs.query("select x from mytable where..."); 
       UnlockTable();
       send(nValue);
      }
     }
    }