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


    
    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 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    仿QQ聊天系统课程设计

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

    3年前   
    666    0

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

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

    1年前   
    229    0

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

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

    3年前   
    622    0

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

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

    3年前   
    642    0

    ping程序课程设计实验报告

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

    2年前   
    478    0

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

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

    3年前   
    625    0

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

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

    2年前   
    469    0

    话术:新人聊天流程

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

    5年前   
    2247    0

    聊天式作文评语

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

    11年前   
    537    0

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

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

    2年前   
    558    0

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

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

    5年前   
    1877    0

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

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

    3年前   
    589    0

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

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

    2年前   
    512    0

    低压电缆试验报告

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

    1年前   
    579    0

    肥料试验报告格式

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

    13年前   
    12352    0

    驱动程序实验报告操作系统课程设计报告

    操作系统课程设计报告班级: 计科 姓名: 学号: 老师: 时间:2012年X月X日一、设计目的操作...

    1年前   
    300    0

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

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

    3年前   
    699    0

    小学数学测试系统C课程设计报告及源程序代码

    课 程 设 计 报 告课程名称 C语言课程设计 课题名称 小学数学测试系统 专 业 ...

    3年前   
    433    0

    微机课程设计报告计算机钢琴的程序编写

    微 机 课 程 设 计题 目计算机钢琴的程序编写学 院物信学院专 业电子信息工程班 级电信班姓 名学号指导教师一.实验目的 1.掌握利用pc机扬声器发出不同频...

    3年前   
    663    0

    数据结构课程设计舞伴配对程序

    沈阳航空航天大学课 程 设 计 报 告课程设计名称:数据结构课程设计课程设计题目:舞伴配对程序院(系):计算机学院专 业:计算机科学与技术班 级: 学 号:姓 名:指导...

    1年前   
    287    0

    文档贡献者

    文***品

    贡献于2022-10-24

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

    该用户的其他文档