本文共 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”。
请求包:包头+包体
应答包:包头+包体,实际上柜员登录的应答包体是空的,实际上打进去的是0
转载地址:http://mifzz.baihongyu.com/