*
* 内容:
* 一个简易版的银行ATM系统
* 1.开户 2.销户 3.存钱 4.取钱 5.查询余额 6.转帐 7.退出
* 分析:
* 开户 - 实现用户新开一个账户,账户写一个结构(account),包括:
* 帐号,姓名,密码,金额
* 在某个头文件中定义
* 写两个进程,一个进程做SERVER,另外一个做CLIENT
* SERVER的功能就是接收CLIENT的数据(有类型消息),然后做出处理,并把结果返回给客户端
* 需要定义两个消息类型,一个是 客户端发给服务器的,另外一个是服务器发给客户端的
* 思路:需要两个key,创建两个消息队列
* 消息的结构:
* struct MSG
* {
* long mtype;
* struct account;
* };
* 其中,账户ID(账号)不是输入,是自动产生
* 先定义一个初始值,把他存入一个文件,以后每个账号的生成都先读这个文件,然后加1,再把数据写回文件。
* 服务器开户的处理步骤:
* 1.取出开户的消息(缺帐号)
* 2.自动生成帐号
* 3.把账户信息存入文件
* 4.返回成功/失败的消息给客户端(放入消息队列)
* 额外要求:
* 1.服务器的代码要求启动子进程去接收消息。(版本2)
* 2.用ctrl+c可以关闭服务器,关闭服务器时把消息队列删除
*
* 内容:
* 一个简易版的银行ATM系统
* 1.开户 2.销户 3.存钱 4.取钱 5.查询余额 6.转帐 7.退出
* 分析:
* 开户 - 实现用户新开一个账户,账户写一个结构(account),包括:
* 帐号,姓名,密码,金额
* 在某个头文件中定义
* 写两个进程,一个进程做SERVER,另外一个做CLIENT
* SERVER的功能就是接收CLIENT的数据(有类型消息),然后做出处理,并把结果返回给客户端
* 需要定义两个消息类型,一个是 客户端发给服务器的,另外一个是服务器发给客户端的
* 思路:需要两个key,创建两个消息队列
* 消息的结构:
* struct MSG
* {
* long mtype;
* struct account;
* };
* 其中,账户ID(账号)不是输入,是自动产生
* 先定义一个初始值,把他存入一个文件,以后每个账号的生成都先读这个文件,然后加1,再把数据写回文件。
* 服务器开户的处理步骤:
* 1.取出开户的消息(缺帐号)
* 2.自动生成帐号
* 3.把账户信息存入文件
* 4.返回成功/失败的消息给客户端(放入消息队列)
* 额外要求:
* 1.服务器的代码要求启动子进程去接收消息。(版本2)
* 2.用ctrl+c可以关闭服务器,关闭服务器时把消息队列删除
*