文件名称:Web QQ系统
- 所属分类:
- Internet/网络编程
- 资源属性:
- [Windows] [Visual C] [源码]
- 上传时间:
- 2009-05-29
- 文件大小:
- 216.25kb
- 下载次数:
- 1次
- 提 供 者:
- laixiao
- 相关连接:
- 无
- 下载说明:
- 别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容均来自于网络,请自行研究使用
开发环境:win2000professionSP4 + vc6MFC
1、运行注册登录服务器和聊天服务器,由注册登录服务器控制聊天通信服务器的运行和停止,聊天服务器可以单独运行,但单独运行后窗口隐藏,不好关闭,最好由注册登录服务器来控制其运行和关闭。
2、运行客户端。
3、若客户端点注册向导则显示注册向导,分三步:基本信息、详细资料和网络设置,然后发送注册消息(用户名、年龄、性别、密码、真名、城市、电邮、头像ID、电话),保存网络设置到data目录下的netset.cfg文件,注册登录服务器检查数据库,若用户名存在则返回exist!;若不存在则将注册数据写入数据库,写数据库成功,注册成功,返回success!写数据库失败,注册失败,返回error!
4、若客户端点登录则发送登录消息,则检查网络设置文件netset.cfg,找到该文件则按设置连接服务器,没找到文件则弹出消息框,点“否”进行网络设置,点“是”进行用户注册;注册登录服务器检查数据库,验证成功返回success!失败返回error!若成功则用该用户名联接聊天服务器,发送用户名消息,否则退出。
5、聊天通信服务器收到连接请求,创建套接字,创建与该套接字关联的发送线程和接收线程,发送线程被挂起,并将发送线程、套接字、地址和用户名组成结构,加入链表,如此循环。
7、客户端发送消息,程序加上附加信息后消息结构为:“接收者用户名” + “:” + “发送者头像ID” + “~” + “(星期、月、日、年、时、分、秒)” +"\t" +"发送者用户名" +“->” + “接收者用户名” +"\n\r" + “发送的消息”。若客户端点传送文件,则发送的信息结构为:接收者用户名 + ":" + "SendFile!" + 发送者用户名 + "~" + 发送方IPAddr。同时启动发送文件线程,显示传送文件对话框,再启动一个线程创建套接字,绑定,侦听,等待连接。
8、聊天服务器收到消息后依照“接收者用户名”查找链表,若找到则唤醒相应线程,转发信息,未找到则给发送者回复消息:“接收者用户名” + “现在不在线,请以后再发消息!”。
9、客房端接收消息,检查消息头,一般消息则发送消息者头像图标在接收者托盘处闪动,同时托盘提示消息变为“某某某的消息”,接收者双击托盘图标接收消息,回到第7步。消息头部为"SendFile!"则弹出消息框,询问是否接收文件,点是则启动接收文件线程,显示传送文件对话框,再启动一个线程创建套接字,连接发送方,进行文件传送;点否则发送的信息结构为:接收者用户名 + ":" + "Refuse!"。消息头部为"Refuse!"则关闭原来启动的发送文件线程。
10、客户端关闭,发送"Close",聊天服务器接收,从链表中删除对应项。
1、运行注册登录服务器和聊天服务器,由注册登录服务器控制聊天通信服务器的运行和停止,聊天服务器可以单独运行,但单独运行后窗口隐藏,不好关闭,最好由注册登录服务器来控制其运行和关闭。
2、运行客户端。
3、若客户端点注册向导则显示注册向导,分三步:基本信息、详细资料和网络设置,然后发送注册消息(用户名、年龄、性别、密码、真名、城市、电邮、头像ID、电话),保存网络设置到data目录下的netset.cfg文件,注册登录服务器检查数据库,若用户名存在则返回exist!;若不存在则将注册数据写入数据库,写数据库成功,注册成功,返回success!写数据库失败,注册失败,返回error!
4、若客户端点登录则发送登录消息,则检查网络设置文件netset.cfg,找到该文件则按设置连接服务器,没找到文件则弹出消息框,点“否”进行网络设置,点“是”进行用户注册;注册登录服务器检查数据库,验证成功返回success!失败返回error!若成功则用该用户名联接聊天服务器,发送用户名消息,否则退出。
5、聊天通信服务器收到连接请求,创建套接字,创建与该套接字关联的发送线程和接收线程,发送线程被挂起,并将发送线程、套接字、地址和用户名组成结构,加入链表,如此循环。
7、客户端发送消息,程序加上附加信息后消息结构为:“接收者用户名” + “:” + “发送者头像ID” + “~” + “(星期、月、日、年、时、分、秒)” +"\t" +"发送者用户名" +“->” + “接收者用户名” +"\n\r" + “发送的消息”。若客户端点传送文件,则发送的信息结构为:接收者用户名 + ":" + "SendFile!" + 发送者用户名 + "~" + 发送方IPAddr。同时启动发送文件线程,显示传送文件对话框,再启动一个线程创建套接字,绑定,侦听,等待连接。
8、聊天服务器收到消息后依照“接收者用户名”查找链表,若找到则唤醒相应线程,转发信息,未找到则给发送者回复消息:“接收者用户名” + “现在不在线,请以后再发消息!”。
9、客房端接收消息,检查消息头,一般消息则发送消息者头像图标在接收者托盘处闪动,同时托盘提示消息变为“某某某的消息”,接收者双击托盘图标接收消息,回到第7步。消息头部为"SendFile!"则弹出消息框,询问是否接收文件,点是则启动接收文件线程,显示传送文件对话框,再启动一个线程创建套接字,连接发送方,进行文件传送;点否则发送的信息结构为:接收者用户名 + ":" + "Refuse!"。消息头部为"Refuse!"则关闭原来启动的发送文件线程。
10、客户端关闭,发送"Close",聊天服务器接收,从链表中删除对应项。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
压缩包 : wblanqq.rar 列表 wbQQ wbQQ/wbQQuser.mdb wbQQ/wbQQChat wbQQ/wbQQChat/wbQQChat.clw wbQQ/wbQQChat/ReadMe.txt wbQQ/wbQQChat/StdAfx.h wbQQ/wbQQChat/StdAfx.cpp wbQQ/wbQQChat/wbQQChat.dsw wbQQ/wbQQChat/wbQQChat.plg wbQQ/wbQQChat/res wbQQ/wbQQChat/res/wbQQChat.rc2 wbQQ/wbQQChat/res/wbQQChat.ico wbQQ/wbQQChat/wbQQChat.h wbQQ/wbQQChat/Resource.h wbQQ/wbQQChat/wbQQChat.rc wbQQ/wbQQChat/wbQQChat.dsp wbQQ/wbQQChat/wbQQChat.cpp wbQQ/wbQQChat/wbQQChat.exe wbQQ/wbQQChat/wbQQChat.opt wbQQ/wbQQRegSer wbQQ/wbQQRegSer/wbQQRegSer.clw wbQQ/wbQQRegSer/ReadMe.txt wbQQ/wbQQRegSer/wbQQRegSer.h wbQQ/wbQQRegSer/StdAfx.cpp wbQQ/wbQQRegSer/wbQQRegSer.dsw wbQQ/wbQQRegSer/User.h wbQQ/wbQQRegSer/User.cpp wbQQ/wbQQRegSer/wbQQRegSer.plg wbQQ/wbQQRegSer/StdAfx.h wbQQ/wbQQRegSer/Resource.h wbQQ/wbQQRegSer/wbQQRegSer.dsp wbQQ/wbQQRegSer/wbQQRegSer.rc wbQQ/wbQQRegSer/res wbQQ/wbQQRegSer/res/wbQQRegSer.rc2 wbQQ/wbQQRegSer/res/wbQQRegSer.ico wbQQ/wbQQRegSer/wbQQRegSer.cpp wbQQ/wbQQRegSer/wbQQRegSerDlg.h wbQQ/wbQQRegSer/wbQQRegSerDlg.cpp wbQQ/wbQQRegSer/wbQQRegSer.exe wbQQ/wbQQRegSer/wbQQRegSer.opt wbQQ/软件说明.txt wbQQ/wbQQClient wbQQ/wbQQClient/AboutAuth.h wbQQ/wbQQClient/AboutAuth.cpp wbQQ/wbQQClient/RegBasicDlg.h wbQQ/wbQQClient/wbQQClient.rc wbQQ/wbQQClient/StdAfx.h wbQQ/wbQQClient/ReadMe.txt wbQQ/wbQQClient/wbQQClient.h wbQQ/wbQQClient/wbQQClient.cpp wbQQ/wbQQClient/wbQQClient.clw wbQQ/wbQQClient/StdAfx.cpp wbQQ/wbQQClient/NetSet.cpp wbQQ/wbQQClient/NetSet.h wbQQ/wbQQClient/RegWizard.cpp wbQQ/wbQQClient/wbQQClientDlg.h wbQQ/wbQQClient/RegMiscDlg.h wbQQ/wbQQClient/RegBasicDlg.cpp wbQQ/wbQQClient/wbQQClient.dsw wbQQ/wbQQClient/Resource.h wbQQ/wbQQClient/RegNetSetDlg.cpp wbQQ/wbQQClient/RegWizard.h wbQQ/wbQQClient/RegMisc.cpp wbQQ/wbQQClient/wbQQClient.plg wbQQ/wbQQClient/RegMiscDlg.cpp wbQQ/wbQQClient/IconComboBox.h wbQQ/wbQQClient/IconComboBox.cpp wbQQ/wbQQClient/wbQQClientDlg.cpp wbQQ/wbQQClient/CarryFile.cpp wbQQ/wbQQClient/RegNetSetDlg.h wbQQ/wbQQClient/CarryFile.h wbQQ/wbQQClient/wbQQClient.dsp wbQQ/wbQQClient/ChatDlg.h wbQQ/wbQQClient/res wbQQ/wbQQClient/res/wbQQClient.rc2 wbQQ/wbQQClient/res/banshen.bmp wbQQ/wbQQClient/res/wbQQClient.ico wbQQ/wbQQClient/data wbQQ/wbQQClient/data/netset.cfg wbQQ/wbQQClient/data/111.db wbQQ/wbQQClient/data/111.lwb wbQQ/wbQQClient/data/222.db wbQQ/wbQQClient/data/222.lwb wbQQ/wbQQClient/data/333.db wbQQ/wbQQClient/data/333.lwb wbQQ/wbQQClient/data/555.db wbQQ/wbQQClient/data/555.lwb wbQQ/wbQQClient/data/444.db wbQQ/wbQQClient/data/444.lwb wbQQ/wbQQClient/face wbQQ/wbQQClient/face/02.ico wbQQ/wbQQClient/face/03.ico wbQQ/wbQQClient/face/04.ico wbQQ/wbQQClient/face/05.ico wbQQ/wbQQClient/face/06.ico wbQQ/wbQQClient/face/07.ico wbQQ/wbQQClient/face/08.ico wbQQ/wbQQClient/face/09.ico wbQQ/wbQQClient/face/10.ico wbQQ/wbQQClient/face/11.ico wbQQ/wbQQClient/face/12.ico wbQQ/wbQQClient/face/13.ico wbQQ/wbQQClient/face/14.ico wbQQ/wbQQClient/face/15.ico wbQQ/wbQQClient/face/16.ico wbQQ/wbQQClient/face/17.ico wbQQ/wbQQClient/face/18.ico wbQQ/wbQQClient/face/19.ico wbQQ/wbQQClient/face/20.ico wbQQ/wbQQClient/face/21.ico wbQQ/wbQQClient/face/22.ico wbQQ/wbQQClient/face/23.ico wbQQ/wbQQClient/face/24.ico wbQQ/wbQQClient/face/25.ico wbQQ/wbQQClient/face/icon25.ico wbQQ/wbQQClient/ChatDlg.cpp wbQQ/wbQQClient/wbQQClient.exe wbQQ/wbQQClient/wbQQClient.opt