本文共 912 字,大约阅读时间需要 3 分钟。
BankSession(与客户端通信)Transaction(银行交易基类)派生类BalanceInquiryChangePasswordCloseAccountDepositOpenAccountQueryAccountHistoryBillQueryDayBillQueryHistoryBillTransferUserLoginWithdrawal TransactionManager(交易管理类)
eg:P105\ABCBank\BankServer\Server.cpp,P105\ABCBank\BankServer\BankThread.cpp,P105\ABCBank\BankServer\BankSession.cpp,P105\ABCBank\BankServer\TransactionManager.cpp
服务端线程运行起来后,数据包的接收,解析等都在Run()方法里面,并在其中创建BankSession对象,让他与客户端进行通信,通过Recv()方法按照包头和包体的自定义的协议接收数据,并把他缓存起来;
DoAction()用来处理接收到的数据,将BankSession对象传递过来,调用TransactionManager的DoAction,会找到对应的交易对象Transaction对象来执行Execute,这样就避免了很多switch case语句或者if else语句来编写(用的是表驱动编程)。处理完毕后,BankSession对象就可以销毁掉了。
eg:P105\ABCBank\BankServer\CMD\UserLogin.cpp
柜员登录的解包
包体假设是string,其内容是len+字符串内容,eg:包体是“hello”,那么打包进去的内容是5+“hello”。转载地址:http://mifzz.baihongyu.com/