西北师范大学08级计算机专业学年论文
NAME PASSWORD STATUS IP INFO PIC SEX EMAIL PLACE BIRTHDAY PORT
文本 文本 整型 文本 文本 文本 文本 文本 文本 文本 整型 16 10 自动 16 100 50 2 50 50 50 自动 用户名 密码 用户状态 IP地址 描述信息 头像名 性别 邮箱地址 联系地址 生日 通信端口 否 否 否 否 否 否 否 否 否 否 否 3.2 服务器端软件结构
客户与服务器的通信通过Socket(TCP/IP)的方式连接。服务器采用多线程方式满足多用户的请求,默认情况下,每个线程处理一个用户的请求。并通过创建一个ServerSocket对象监听来自客户的连接请求,默认端口为5638,然后无限循环调用accept()方法介绍客户程序的连接。服务器通过JDBC-ODBC与后台数据库连接。
服务器的主类是ServerForm,此类启动后是一个图形界面,它能完成一些功能:
启动Server;
7
西北师范大学08级计算机专业学年论文
以列表的形式显示上线用户的信息和上线的总人数;
可以将某一用户断开与服务器的连接,并释放占用的服务器资源; 设置一文本区域,显示服务器的工作日志,当程序退出时,能将这些日志写入文件中,文件名以“日期+时间”命名。
服务器端程序的功能结构如图3-1所示。 处 理 注册 新用户 处理用户登录 处理查找用户 处理好友添加 处理好友删除 处理更新信息 用户下线处理 服务器端程序
图3-1服务器端程序的功能结构示意图
服务器端程序运行界面如图3-2所示。
图3-2 服务器端程序运行界面
8
西北师范大学08级计算机专业学年论文
为了完成这些功能,需要用到下列基本方法。这里以伪代码的形式描述这些方法的基本流程。
处理注册新用户的方法: registerNewUser(){ 获得数据库连接对象 读取客户端用户的注册信息 直线SQL语句
返回注册用户的QQ号码 向客户端发送用户的QQ号码 向客户端发送结束信号 }
处理用户登录的方法: Login(){
获得数据库连接对象 读取用户名和密码
执行SQL语句并判断是否为合法用户 If(是合法用户) 注册用户的IP地址 查找好友 返回成功信息 else
9
西北师范大学08级计算机专业学年论文
返回登录失败的消息 }
处理用户查找其他用户方法: queryUser(){ 获得数据库连接对象 读取用户端发送的查找信息 执行SQL语句 If(找到用户) 返回用户的信息 else
返回错误信息 }
处理用户添加好友方法: addFriend(){ 获得数据库连接对象
结束客户端发来的客户及其好友号码 将客户和好友的号码插入点FRIEND表中 If(执行成功) 向客户端发送成功信息 else
向客户端发送失败信息 }
10
西北师范大学08级计算机专业学年论文
处理用户删除好友方法: deleteFriend(){ 获得数据库连接对象
接受客户端发来的客户及其好友的号码 执行SQL语句(在FRIEND表中删除此信息) If(执行成功) 向客户端发送成功信息 else
向客户端发送失败信息 }
处理用户更新自己信息的方法: updeteOwnInfo(){ 获得数据库连接对象 读取客户端发送的信息 将此信息写入数据库 If(执行成功) 向客户端发送成功信息 else
向客户端发送失败信息 }
处理用户下线的方法: loginOut(){
11