简单的局域网聊天程序试验报告课程设计


    
    C++面象课程设计报告



    院(系): 计算机工程学院
    专业: 软件工程
    学生姓名: __   
    班级:__软件 学号:
    题目: _局域网聊天程序________
    起迄日期: _2012618~2012629
    设计点: 计算机学院机房
    指 导 教 师:




    完成日期 2012 年X月 X日
    课程设计报告容(供参考)
    需求分析前数字信息时代网络时代种编辑工具忽视网络应着Internet 普宽带技术成熟越越户进入网络世界中享浏览新闻查询信息发送邮件线观电影等服务享受网络带便利办公高效时新型Web应程序网民间提供实时通信功场聊天室
    网络早期开始盛行BBSIRC 类似网聊天室机制聊天室网友提供实时性话渠道网络极流行项服务
    聊天室适网会议闲聊场合聊天室网友提供较交友环境网友间相互文字交谈形式点类似笔友性质节省书信返时间网交友热门原
    聊天室设计目标
    课题建立聊天通信模型设计聊天室软件包括服务器端客户端功:
    服务器端功:
    1 初始化socket 创建服务器端
    2 维护链表保存户IP址端口信息
    3 接受户传送聊天信息然链表中户转发
    4 接受户传送连接判断命令户发出响应命令
    1.
    二 设计容
    SOCKET连接程
     根连接启动方式套接字连接目标套接字间连接程分三步骤:服务器监听客户端请求连接确认   服务器监听:服务器端套接字定位具体客户端套接字处等连接状态实时监控网络状态   客户端请求:指客户端套接字提出连接请求连接目标服务器端套接字客户端套接字必须首先描述连接服务器套接字指出服务器端套接字址端口号然服务器端套接字提出连接请求   连接确认:指服务器端套接字监听者说接收客户端套接字连接请求响应客户端套接字请求建立新线程服务器端套接字描述发客户端旦客户端确认描述连接建立服务器端套接字继续处监听状态继续接收客户端套接字连接请求
    开发ServerClient模型程序
     开发原理:   服务器ServerSocket监听指定端口端口意指定(1024端口通常属保留端口操作系统中意建议1024端口)等客户连接请求客户连接会话产生完成会话关闭连接   客户端Socket网络某服务器某端口发出连接请求旦连接成功开会话会话完成关闭Socket客户端需指定开端口通常时动态分配1024端口   Socket接口TCPIP网络APISocket接口定义许函数例程程序员开发TCPIP网络应程序学InternetTCPIP网络编程必须理解Socket接口Socket接口设计者先接口放Unix操作系统里面果解Unix系统输入输出话容易解Socket网络Socket数传输种特殊IOSocket种文件描述符Socket具类似开文件函数调Socket()该函数返回整型Socket描述符连接建立数传输等操作通该Socket实现

    显示编辑框
    IP
    端口:
    名字

    发送编辑框
    建立连接钮

    断开连接
    端口:

    建立服务器
    关闭服务器
    发送
    清空
    退出

    运行聊天程序
    建立服务器
    台电脑运行聊天程序
    输入服务器IP址端口号
    (输入名字)建立连接
    提示连接成功(失败)
    进行聊天
    清聊天容
    显示机IP建立连接址端口
    提示xxx连接成功
    进行聊天
    清聊天容
    关闭服务器
    提示X户正连接否断开
    退出
    断开连接
    退出
    1.
    2. 编写程序代码
    客户端类:
    class CClientSocket public CSocket
    {
    Attributes
    private
    UINT m_nTimerID
    CChatDlg* m_pDlg
    Operations
    public
    CClientSocket(CChatDlg* pDlg)
    virtual ~CClientSocket()

    Overrides
    public
    BOOL SetTimeOut(UINT uTimeOut)
    BOOL KillTimeOut()
    ClassWizard generated virtual function overrides
    {{AFX_VIRTUAL(CClientSocket)
    public
    virtual void OnReceive(int nErrorCode)
    virtual void OnClose(int nErrorCode)
    virtual BOOL OnMessagePending()
    void CClientSocketOnReceive(int nErrorCode)
    {
    TODO Add your specialized code here andor call the base class
    char buffer[BufferSize]
    Receive(buffer sizeof(buffer))
    m_pDlg>ShowText(CString(buffer))

    CSocketOnReceive(nErrorCode)
    }

    void CClientSocketOnClose(int nErrorCode)
    {
    TODO Add your specialized code here andor call the base class
    PostMessage(m_pDlg>m_hWnd WM_CLIENT_CLOSE 0 0)

    CSocketOnClose(nErrorCode)
    }

    BOOL CClientSocketOnMessagePending()
    {
    TODO Add your specialized code here andor call the base class
    MSG msg
    if (PeekMessage(&msg m_pDlg>m_hWnd WM_TIMER WM_TIMER PM_NOREMOVE))
    {
    if (msgwParam m_nTimerID)
    {
    PeekMessage(&msg m_pDlg>m_hWnd WM_TIMER WM_TIMER PM_REMOVE)
    CancelBlockingCall()
    return FALSE
    }
    }
    return CSocketOnMessagePending()
    }

    BOOL CClientSocketSetTimeOut(UINT uTimeOut)
    {
    m_nTimerID SetTimer(m_pDlg>m_hWnd 1 uTimeOut NULL)
    return m_nTimerID
    }

    BOOL CClientSocketKillTimeOut()
    {
    return KillTimer(m_pDlg>m_hWnd m_nTimerID)
    }
    CServerSocketCServerSocket(CChatDlg* pDlg)
    {
    m_pDlg pDlg
    m_nMessageCount 0
    }

    CServerSocket~CServerSocket()
    {
    }


    Do not edit the following lines which are needed by ClassWizard
    #if 0
    BEGIN_MESSAGE_MAP(CServerSocket CSocket)
    {{AFX_MSG_MAP(CServerSocket)
    }}AFX_MSG_MAP
    END_MESSAGE_MAP()
    #endif 0


    CServerSocket member functions

    服务器类

    void CServerSocketOnReceive(int nErrorCode)
    {
    TODO Add your specialized code here andor call the base class
    char buffer[BufferSize]
    Receive(buffer sizeof(buffer))
    if (m_nMessageCount 0)
    {
    CString str(buffer)
    m_ClientName str
    str + 线
    m_pDlg>ShowText(str)
    for (int i 0 i < m_pDlg>m_ServerSocketsize() i++)
    {
    if (m_pDlg>m_ServerSocket[i] this)
    {
    m_pDlg>m_ServerSocket[i]>Send(str strGetLength() + 1)
    }
    }
    }
    else
    {
    CString str
    str m_ClientName + 说 + buffer
    m_pDlg>ShowText(str)
    for (int i 0 i < m_pDlg>m_ServerSocketsize() i++)
    {
    if (m_pDlg>m_ServerSocket[i] this)
    {
    m_pDlg>m_ServerSocket[i]>Send(str strGetLength() + 1)
    }
    }
    }
    m_nMessageCount++

    CSocketOnReceive(nErrorCode)
    }

    void CServerSocketOnClose(int nErrorCode)
    {
    TODO Add your specialized code here andor call the base class
    CString str(m_ClientName)
    str + 离线
    m_pDlg>ShowText(str)
    for (int i 0 i < m_pDlg>m_ServerSocketsize() i++)
    {
    if (m_pDlg>m_ServerSocket[i] this)
    {
    m_pDlg>m_ServerSocket[i]>Send(str strGetLength() + 1)
    }
    else
    {
    m_pDlg>PostMessage(WM_CLIENT_CLOSE i 0)
    }
    }
    CSocketOnClose(nErrorCode)
    }
    建立服务器


    连接服务器


    进行聊天:



    三 设计总结(谈谈次课程设计验体会)
    通毕业设计开发学软件开发新理解增加开发力深刻理解团队合作精神次开发仅学 C++数结构sqlwinsock技术网络编程进行深入学总结出网络编程特点开发提供参考感谢老师细心指导时感谢学宝贵建议

    四 参考文献
    [1] David J KruglinskiProgramming Visual C++1998
    [2] 施炜李铮秦颍Windows Sockets 规范应—Windows网络编程接口
    1996
    [3]Anthony Jones and Jim OhlumdTCPIP详解 卷:协议(英文版)
    机械工业出版社2003
    [4] 王罡 林立志 基WindowsTCPIP编程清华学出版社2002
    [5] 蒋东兴等Windows Sockets 网络程序设计全 清华学出版社1999

    五 附录

    函数变量名
    注释
    CAboutDlg
    关话框类
    CChatApp
    应程序运行基础
    CChatDlg
    窗口
    ONSEND
    发送消息

    ContentClient
    连接服务器判断否连接服务器
    ONCLEAR
    清聊天记录
    DoDataExchange
    数改变改变列表中信息显示更新列表中信息
    ONCONNECT
    连接服务器
    ONCANCEL
    退出
    Oncielentclose
    关闭客户端
    OnCloseLink
    断开已建立连接友连接
    OnCtlColor
    控件颜色处理提示信息颜色改变
    OnInitDialog
    界面进行初始化
    ONSERVERCREATE
    建立服务器
    OnPaint
    绘制界面窗口
    OnserverClose
    关闭服务器
    OnSaveChatCont
    保存聊天信息文件
    青岛理工学课程设计
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 3 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    聊天程序设计嵌入式linux课程设计报告

    课程设计成果 院(系):_电气与信息工程学院_ 班 级: 计科普 学生姓名: 学 号: 设计地点(单位)_...

    1年前   
    229    0

    仿QQ聊天系统课程设计

    仿QQ聊天系统课程设计目录绪论 1一.需求分析 11.1软件功能需求分析 21.2 安全需求分析 2二.总体设计 32.1 软件结构图 32.2 功能描述 32.2.1注册功能概要 42.2....

    3年前   
    668    0

    《Web开发》课程设计报告聊天室

    《Web开发》课程设计报告(2011— 2012学年 第 2 学期)题 目: 聊 天 室 专 业: 计算机网络技术 班 ...

    3年前   
    625    0

    商场局域网的组建与规划课程设计

    XX 大 学课 程 设 计 说 明 书题目名称 商场局域网的组建与规划 院(系) 软件学院 专业(班级) 软件 学生姓名 ...

    3年前   
    643    0

    ping程序课程设计实验报告

    Windows网络程序设计课程设计 课 程 名 称 ping程序设计 姓   名 ...

    2年前   
    482    0

    Ping程序的设计与实现课程设计

     计算机网络课程设计报告设计名称 Ping程序的设计与实现 专业班级 同组人姓名 ...

    3年前   
    628    0

    实验一C程序运行环境及简单程序的运行

    成绩Guangxi University of Science and Technology?C语言程序设计?实验报告院 〔系〕: 计算机学院 专 ...

    2年前   
    471    0

    图书馆程序设计程序设计综合课程设计报告

    XX学院计算机科学与技术系信息管理与信息系统专业《程序设计综合课程设计》报告 (2010/2011学年 第一学期)学生姓名: 学生班级: 信息管理与信...

    2年前   
    560    0

    简单模型机的设计说明书(课程设计)

    计算机组成原理课程设计任务书题目: 模型机设计 学生姓名: 学 号: 班 级: 软件工程班 ...

    3年前   
    592    0

    编译原理课程设计报告 简单编译器的设计与实现

     编译原理课程设计 ——简单编译器的设计与实现 班 级: 组长: 组员: 指导教师: 设计时间: ...

    5年前   
    1883    0

    计算机组成原理简单模型机设计课程设计

    计算机组成原理课程设计任务书题目: 模型机设计—1 学生姓名: 学 号: 班级:计算机科学与技术班 指导...

    2年前   
    515    0

    低压电缆试验报告

    0.4kV电 力 电 缆 试 验 报 告运行单位郁南恒信广场型 号ZR-YJV规 格2(1×240)mm2厂 家新南达实业额定电压0.6/1kV出厂日期2013-8-20长 度94m温 ...

    1年前   
    585    0

    肥料试验报告格式

    肥料试验报告格式 页面设置 页边距:左右3.0、上下2.5。文字行距28磅,表格行距16磅 封页: 肥肥效鉴定田间试验报告----字体隶书字号小初   试验...

    13年前   
    12361    0

    话术:新人聊天流程

    亲,您好,我们是入驻天猫卖家服务市场的线上运营服务商,做整店托管服务。现在双十一已经过去了,双十二活动马上就要开始了,店家都已经开始为了年底活动进行准备,冲击销量了。年底活动期间订购一个月赠送两...

    5年前   
    2252    0

    聊天式作文评语

    聊天式作文评语  “中心明确”、“语句优美”、“语句通顺”、“结构严谨”……这一类的作文评语是我们所常用的,久之,味同鸡肋,不写评语,称不上批改作文,写了,又枯燥乏味,对作文水平的提高也没多大...

    11年前   
    541    0

    论文:校园局域网的组建

    随着网络建设的逐步普及,大学高校局域网络的建设是高校向高水平、研究性大学跨进的必然选择,高校校园网网络系统是一个非常庞大而复杂的系统,它不仅为高校的发展、综合信息管理和办公自动化等一系列应用提供...

    5年前   
    5505    0

    办公局域网组建方案

    在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用,随着Internet技术的普及和应用,办公自动化系统已成...

    15年前   
    19136    0

    无线局域网技术

         随着计算机技术和电子信息技术的日渐成熟,电子产品以前所未有的速度迅速进入千家万户。而网络的普及,家庭用户对Internet的需求也越来越多。我们如果能将繁杂的电子产品有机的进行连接...

    9年前   
    6443    0

    局域网技术与组网工程

     局域网技术与组网工程 惺惺惜惺惺专周报告书 姓 名:详详细细 ...

    2年前   
    408    0

    小学算术运算测试程序JAVA课程设计报告

    面向对象程序设计(JAVA)课程设计说明书学院名称: 计算机与信息工程学院 班级名称: 20XX级计算机科学与技术 题 目: ...

    3年前   
    701    0

    文档贡献者

    文***品

    贡献于2022-10-24

    下载需要 3 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档