现在的位置: 首页 > 综合 > 正文

聊天室vc实现 [设计文档]

2012年09月24日 ⁄ 综合 ⁄ 共 1823字 ⁄ 字号 评论关闭

 

18:51:55  2010-11-01

基于TCP/IP协议的,简单聊天室的vc实现。

感觉一团乱糟糟,在写文档,花3天的时间。

 

2010-11-03  15:21:46

 

             基于TCP/IP协议的聊天室实现

                         ---概要设计

 

一、功能需求分析

服务端

1.首先初始化服务器,即启动服务器,

当编译运行服务端后,弹出一对话框,显示,“服务器初始化成功”。

 

用户登录,服务器端对话框,显示 “时间、、某某进入聊天室”。

用户退出,服务器端对话框,显示“ 时间 **离开聊天室” 。

 

客户端,

1.编译运行,弹出登录对话框,显示要求用户登录、

输入用户名,用户IP地址。

2.用户输入信息,单击“确定”按钮后,直接弹出、进入聊天对话框。

与此同时,服务器端对话框,显示 “时间、、某某进入聊天室”等信息。

 

3.然后在客户端对话框,即聊天室对话框下,

已登录并连接服务器的用户,可以发送信息,这里暂只考虑只发送给大家,

相当于Qq群内,聊天,不处理私聊 等功能。

4.客户端支持多个用户连续登录服务器,与大家聊天。

相当于,多人登录Qq后,进入qq群,当某一用户退出时,

与此同时,服务器端对话框,显示“ 时间 **离开聊天室。

 

 

 

二、设计思路分析

   基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,

程序一般分为服务器端和用户端两部分。设计思路(VC6.0下):

  第一部分 服务器端

一、创建服务器套接字(create)。

二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。

三、接受来自用户端的连接请求(accept)。

四、开始数据传输(send/receive)。

五、关闭套接字(closesocket)。

第二部分 户端

一、创建户套接字(create)。

二、与远程服务器进行连接(connect),如被接受则创建接收进程。

三、开始数据传输(send/receive)。

四、关闭套接字(closesocket)。

 

 

 

三、编码步骤分析

     在创建MFC程序第二步的时候选上Windows Socket选项

编码步骤:

1.服务器端,初始化服务器。

 

2.编写用户登录对话框,CLoginDlg中,输入用户信息,昵称+服务器IP地址。

 

3.当用户单击确定时,若连接服务器成功,则直接弹出聊天对话框,

进入聊天室界面。

否则,弹出警告框,提示“网络创建错误”,即Create函数调用出错。

或者,弹出警告框,提示“连接服务器失败!”,即Connect函数调用出错。

 

4.构造CSocket对象,

服务端的信息显示:

    ServerSocket

        OnAccept(连接ConnectList)。

    ClientSocket

        OnReceive(某某进入聊天室),OnClose(某某离开聊天室)

OnInitDialog(服务器初始化成功)

UpdateUser(用户记录更新)

 

客服端

ClientSocket (OnReceive

登录对话框上,单击确定按钮,调用Connect函数。

聊天对话框上,具体设计OnSend、函数。

 

5.编写Create函数,创建Socket。Create会自动调用Bind函数,

将创建的Socket绑定到指定的 服务器IP地址,和端口上。

 

6.启动服务器,Socket监听Listen,是否有连接请求,

7.具体连接服务器,Connect指定服务器IP地址,和端口。

8.服务器接受请求,Accept(ReceiveSocket)

此时服务器端,还需建立一个新的CSocket对象,用来与客户端进行交流。

即当 用户进入聊天室,和离开聊天室,服务器端,都能显示相应的用户信息。

 

9.然后是,聊天室中,实现聊天等功能,的ReceiveSend函数的设计。

                                                  

 

                                                  -- July、2010/11、03。

 

 

 

进入具体设计阶段,

  

第三天 文档   11/05

基于TCP/IP协议的聊天室实现

                      ---具体设计

 ....

设计已经结束。11.25.                  

抱歉!评论已关闭.