基于VC的聊天软件设计与实现.doc_第1页
基于VC的聊天软件设计与实现.doc_第2页
基于VC的聊天软件设计与实现.doc_第3页
基于VC的聊天软件设计与实现.doc_第4页
基于VC的聊天软件设计与实现.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP语言QQ在线系统在网站中的应用摘要:互联网的快速发展,促进了网络中的信息传输,简单便捷的快速获得人工交流信息变得尤为重要。本文从技术的角度出发,设计与实现了一款基于网页的互动聊天工具。在本文中,我们首先介绍了软件的系统结构及设计思路,然后分别设计与实现了本软件的数据存储系统。关键字:Vb开发,网络聊天软件,QQ在线,基于网页,留言系统。Abstract: The rapid development of the Internet promotes the transmission of network information and Internet chat has become increasingly popular. In this paper, we design and implement a network chat software from the technical view. We first introduce the software architecture and design ideas, then design and implement the database systems, server software and client software of the chat software.Keywords: VC development, network chat software, Socket programming, C/S model1. 引言 近年来,随着全球信息化技术的发展,聊天软件也得到了快速的发展,而且规模越来越大,功能也越来越强。即时聊天软件使人们的沟通突破了时空和级别的界限,使陌生人之间的沟通突破了环境界限,使自我与外界的沟通突破心理界限。聊天软件的广泛应用,已经不仅仅是一种技术工具,它成为了人们交流的一种重要方式,并构建起一种新的社会关系。 目前的聊天软件一般采用UDP或者 TCP协议体系来实现 ,开发技术已经比较成熟。本文在VC开发环境下设计和实现了一种聊天软件,可以实现在线用户的即时聊天和文件传输功能。2. 系统分析与设计本文所设计和实现的网络聊天软件是在VC开发环境下完成的,分为服务器和客户端两部分,使用SQL Server 2005数据库来保存注册用户的信息。2.1. 系统的整体结构本网络聊天软件采用了C/S(客户机/服务器)模式开发,一台服务器,多个客户机,服务器与客户机之间,客户机与客户机之间采用socket技术来实现网络通信。在此系统中,服务器能够及时的响应客户端请求;客户端能根据从服务器得到的用户列表与对应的多个在线客户端聊天和完成文件传输功能。如图1是系统的结构图。图1 系统结构图从图中可以看出,在此系统中,使用4000端口用于服务器和各客户端通信,使用4001端口用于各个客户端间聊天,使用4002端口用于各个客户端间的文件传输。2.2. 系统的功能本系统的服务器和客户端分别完成不同的功能,而且相互配合,实现了即时聊天和文件传输的功能。服务器端的功能主要包括以下几项:(1) 负责客户端用户的注册登录,以及用户资料的获取;(2) 负责用户登录、查询,修改用户的基本信息,实时更新在线用户列表;(3) 采用多线程机制,同时接受和处理多个客户端发来的服务请求。客户端的功能主要包括以下几项:(1) 从服务器端得到在线用户列表并显示;(2) 负责与其它客户端进行信息交流和控制;(3) 每个客户端既是聊天的发起端有时接收端,实现了多点同时聊天和文件传输。3. 数据库设计与实现本系统的数据库是供服务器端来存取信息使用的。客户端不会直接操作数据库,而是通过向服务器发送请求,由服务器得到数据库中的数据后,通过网络传输给客户端。在系统的数据库中,主要保存了注册用户的信息。我们使用userinfo数据表来保存用户信息,在此数据表中保存的用户信息主要有:用户编号,用户姓名,用户性别,用户年龄,用户地址,用户密码等。如表1是userinfi数据表的字段设置。表1 userinfo数据表字段设置字段名称数据类型字段大小id数字长整型nickname文本50sex文本2age数字整型address文本50password文本504. 服务器端设计与实现因为服务器端要处理多个客户端发来的请求,因此使用了多线程设计。一个线程处理各个客户端的连接请求(accept);另一个线程是在客户端连接成功后,处理客户端发送来的各种请求信息,包括:用户登录,用户注册,用户下线,返回在线用户列表,查询和修改某个在线用户的信息。如下是服务器启动后的主要处理程序段:/创建socketif(sListen=WSASocket(AF_INET,SOCK_STREAM,0,NULL,0,WSA_FLAG_OVERLAPPED)=INVALID_SOCKET)AfxMessageBox(错误:create socket);WSACleanup();return -1;/邦定主机地址inetAddr.sin_addr.s_addr=htonl(INADDR_ANY);inetAddr.sin_family=AF_INET;inetAddr.sin_port=htons(SERVER_PORT);if(bind(sListen,(SOCKADDR*)&inetAddr,sizeof(inetAddr) =SOCKET_ERROR)AfxMessageBox(错误:bind in start);WSACleanup();return -1;/侦听if(listen(sListen,5)!=0) /侦听,设定最大连接数为5AfxMessageBox(错误:listen failed in start);return -1;./创建处理线程HANDLE h_Handle;if(h_Handle =CreateThread(NULL,0,ProcessThreadIO,NULL,0,&dwThreadID)=NULL)PrintSystemError(不能创建线程);return -1;/接受各个client的连接 g_dwEventTotal = 1;while(TRUE)/接受侦听int sockLen = sizeof(inetAddr);if(sAccept=accept(sListen,(SOCKADDR*)&inetAddr,&sockLen)=INVALID_SOCKET)/本函数从s的等待连接队列中抽取第一个连接PrintSystemError(不能接受socket accept连接请求);return -1; 在以上代码中,accept(sListen,(SOCKADDR*)&inetAddr,&sockLen)函数是用来接收客户端的连接请求的;CreateThread(NULL,0,ProcessThreadIO,NULL,0,&dwThreadID)创建了一个ProcessThreadIO线程,在ProcessThreadIO中包含对客户端发送来的各种请求信息的处理方法。5. 客户端设计与实现客户端主要包括以下功能模块的设计与实现:用户注册模块,用户登录模块,用户列表模块,用户资料模块,聊天模块。其中,聊天模块的设计是客户端设计的重点和难点。在聊天模块设计中,使用了socket套接字与对方客户端进行信息的传输,如下是点击发送按钮后的信息传输程序段:void CChatDlg:OnBnClickedSendmsg()UpdateData(true);if(m_strMsg = _T()AfxMessageBox(发送消息不能为空);GetDlgItem(IDC_MSG)-SetFocus();return ;if(isChating = false)if(ConnectServerMsg() = false)GetDlgItem(IDC_MSG)-SetFocus();return;/连接已经建立好,可以收发信息了char buffMAX_BUFF_SIZE;CString strTitle;strTitle.Format(与%s正在聊天中.,m_strTargetNickname);this-SetWindowText(strTitle);memset(buff,0,sizeof(buff);strcpy(buff,m_strMsg);if(send(m_cliSocket,buff,sizeof(buff),0) = SOCKET_ERROR)closesocket(m_cliSocket);isChating = false;return;ShowMsg(m_strLocalNickname,m_strMsg);GetDlgItem(IDC_MSG)-SetFocus();BeginRecvMsg();6. 小结随着互联网的迅速发展,各种软件都纷纷加入网络功能,使用户可以方便快捷的获得数据。本文设计与实现的网络聊天软件,从技术的角度出发,完成了基本的聊天功能和文件传输功能,能够满足用户的基本需求。但是,本系统与成熟的网络聊天软件相比,还有较大的差距,在界面友好性和功能的完备性方面有待改进。参考文献1 杨大全,拱长青等.SOCKET 编程技术J.沈阳工业大学学报,2000,22(4):313-316.2 陈更力, 张青. 基于Java Socket网络编程的一种新实现 J. 电脑开发与应用, 2006( 6): 12- 13.3 孔鹏.Visual C+ 6.0 完全自学手册M.北京

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论