一道笔试题 斯伯伦
来源:互联网 发布:基佬大乱斗mac 编辑:程序博客网 时间:2024/06/05 02:45
程序分析:
Server:
server -port <integer between 1 and 65535> -data <folder to store information> -proc_count <positive integer>
支持多客户端
port 可选,默认3000, 合法是“1到65535”(输入错误需要显示)
data 可选,默认是 用户根目录的 serverdata,不存在则创建,(注意对该目录是否有创建和修改的权限,提示优雅)
proc_count:可选,默认为2, 整形
功能:
启动: 检查 data folder是否可访问,并绑定到端口,加载数据到内存,创建 port_count 个数的线程
运行: 接收client请求,并作出处理; 定期回写内存数据到xml
结束: 保存数据到xml,关闭
功能: birds.xml 包含birds信息,有 name color weight height四个属性; sightings.xml 包含每个鸟的 location和time。 启动时将数据加载到内存,定期从内存向xml 保存, 关闭时保存到xml文件
Client:
-serverPort <integer> -addbird -addsighting -listbirds -listsightings -remove -quit
serverPort 默认3000,代表服务器端口
其他只能出现一个,执行完后客户端结束
addbird: 要求输入 name color weight height。 将信息通过tcp传递。 server解析插入数据结构,name存在,返回错误信息;插入成功返回成功,客户端显示“"Bird<name> successfully added to the database"”
addsighting: enter the bird name, location, date and time, 成功和失败返回信息如上,name不唯一
remove:传递name,删除bird信息
quit: 关闭服务器
listbirds: 客户端接收所有的brid信息,以表格显示,按name排序,并输出总数
listsighting: 输入bird的name, 开始和结束date ,bird 名字支持正则表达式,以表格显示 name ,date,先按name再按time排序
设计:
服务器端:
1. 使用ctl 进行参数管理 (CTL 三个都用了): 参数错误时返回信息
2. 使用 dom4j 加载和回写xml文件
3. 使用pool 的线程池
4. 多线程程序的创建
5. tcp socket的实现
6. 消息格式
- 一道笔试题 斯伯伦
- gameloft一道笔试题
- google笔试题一道
- 网易一道笔试题!
- 一道迅雷笔试题
- 一道MSSQL笔试题
- 一道笔试题
- 一道java笔试题
- 一道笔试题
- 一道AutoDesk笔试题
- 网易笔试题一道
- 一道笔试题
- 一道C笔试题
- 一道笔试题
- 一道笔试程序设计题
- 网易一道笔试题!
- 一道c++笔试题
- 一道笔试题
- a.out
- C++预处理指令
- linux下samb配置
- Latex 中添加参考文献
- Latex中将下标放在正下方
- 一道笔试题 斯伯伦
- jquer实现弹出层效果
- web网页中直接嵌入图片
- UVa 10152 - ShellSort
- java数据库操作的Driver(驱动)与URL
- Winsock异步模式之一select 选择模式
- Ubuntu的关机重启命令整理
- PHP session过期机制和配置
- SAX和DOM的区别