- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 37
重 庆 理 工 大 学
课程设计
课程 面向对象程序设计I
题目 基于WinSock的局域
网通信系统的开发
重庆理工大学课程设计
PAGE 2
1 系统分析
1.1 模块一
这个模块的功能是启动登录对话框,并且在启动后有登入,取消,申请帐号三个可以选择,若要登录则输入正确的帐号和密码即可,这是系统将传密码和帐号去验证是否正确,正确的话就可以登入到主对话框来(模块三),不正确的话会有重新输入的提示.如果选择申请帐号则会弹出申请帐号对话框(模块二).另外还可以点击取消(退出)按钮,则程序将关闭.
1.2 模块二
申请帐号对话框弹出后,用户要输入长度范围内的昵称,以及长度方位内的密码,并且第二次输入的密码要与第一次输入的密码相同,如果不输入点确定也会报错,在确定完输入信息后,点击确定数据库将存放输入的信息,点击取消将回到登录界面.
1.3 模块三
这个模块中我做的是窗口界面,也就是接口.进入主界面后,可以有更改状态,发送消息,删除好友,查找好友,个人设置,好友消息,退出这几个选项.点击更改状态可以选择自己的状态,一共有三种可供选择,点击查找好友后会弹出一个选择查找方式的窗口,选择方式查到好友后可查看好友资料并加好友,接下来可以与好友聊天,但必须选中好友后再点击发送信息,否则将弹出提示语,这点在点击好友信息按钮和删除好友按钮时也是如此,必须选中后才能操作.另外可以点击个人设置对自己的资料进行填写修改.点击退出会弹出一个确认退出对话框,再次确认后就将退出程序,点取消则返回主对话框.
2 系统实现
2.1模块一
CP2PClientApp theApp;
unsigned int CP2PClientApp::_seq_count = 0; //消息号计数器
IM_Config_Parser g_fileobj(imclient.ini); //操作配置文件全局对象,配置文件名称imclient.ini
Message_QueueIM_Message_Block*,MAX_MSG_QUEUE_NUM g_rcv_msg_queue;//全局接收消息队列
Message_QueueIM_Message_Block*,MAX_MSG_QUEUE_NUM g_send_msg_queue;//全局发送消息队列
//全局udp通信对象
Udp_Daemon g_udp_daemon;
#endif
//从配置文件读取配置信息
if(!g_fileobj.open())
{
AfxMessageBox(打开配置文件imclient.ini 失败!);
return 0;
}
char strValue[MAX_STRING_LEN];
if(g_fileobj.get_string(im_appclient,im_server_ip,strValue,MAX_STRING_LEN))
m_ServerInfo.server_ip = ntohl(inet_addr(strValue));//服务器ip
if(g_fileobj.get_string(im_appclient,im_server_udp_port,strValue,MAX_STRING_LEN))
m_ServerInfo.server_port = atoi(strValue);//服务器端口号
if(g_fileobj.get_string(im_appclient,recv_producer_num,strValue,MAX_STRING_LEN))
m_ClientInfo.recv_producer_num = atoi(strValue);//接收消息线程数
if(g_fileobj.get_string(im_appclient,send_consumer_num,strValue,MAX_STRING_LEN))
m_ClientInfo.send_consumer_num = atoi(strValue);//发送消息线程数
if(g_fileobj.get_string(im_appclient,process_consumer_num,strValue,MAX_STRING_LEN))
m_ClientInfo.process_consumer_num = atoi(strValue);//处理消息线程数
if(g_fileobj.get_string(im_appclient,recent_ID,strValue,MAX_STRING
原创力文档


文档评论(0)