- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
聊天程序开发文档聊天程序开发文档
南 京 理 工 大 学
紫金学院
网络编程技术报告
作 者: 学 号: 学院(系): 计算机科学与技术 专 业: 网络工程 题 目: 多功能聊天程序
2013 年 12 月
目 录
一、背景····································3
二、系统功能········································4
三、系统设计流程图····································5
四、系统模块划分·····································7
五、详细设计及实现··································9
六、总结体会········································19
一. 背景
网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。聊天室可以建立在即时通讯软件(如MSN Messenger、QQ)、P2P软件、万维网(如 Halapo,Meebo ) 等基础上,万维网方式更为普通和种类繁多,交谈的手段不局限于文本,更包括语音、视频。通常聊天室是按照房间或频道为单位的,在同一房间或频道的网人可以实时地广播和阅读公开消息。一般情况下,与其它网络论坛、即时通讯不同的是,聊天室不保存聊天记录。
1.1课题背景及意义
当今世界正处于信息时代,计算机和通信网络是这一时代所谓“信息基础设施”。在互联网相当普及的今天,在互联网上聊天对很多“网虫”来说已经是家常便饭了。聊天室程序可以说是网上最简单的多点通信程序。一个简单的聊天室, 从程序员的观点来看就是在多个I/O端点之间实现多对多的通信。基于SOCKET的局域网通信是一种灵活的、易于实现的、低成本的方法。它可以运行在各种使用TCP/IP协议作为通讯协议的网络上。而在SOCKET API的帮助下,开发基于SOCKET的局域网通信软件也是易于实现的。
1.2 实验平台介绍
Visual C++(简称VC)是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C++可视化开发环境。VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在?Windows平台无所不能。VC主要是针对Windows系统,适合一些系统级的开发,可以方便实现一些底层?的调用。在VC里边嵌入汇编语言很简单。当对系统性能要求很高的时候,可用VC开发。VC在多线程、网络通信、分布应用方面,有不可比拟的优势。
二.需求分析
2.1 设计目的
综合运用本课程的知识设计,Visual C++作为,复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力。
设计
系统模块划分
图1.系统模块划分图
服务器端:
服务器等待用户从主窗口发来的启动和接收消息的过程如下:
首先,建立自己的套接口。在互联网的进程通信中,全局标识一个进程需要一个被称为“半相关”的三元组(协议,本地主机地址和本地端口号)来描述;而一个完整的进程通信实例,则需要一个被称为“相关”的五元组(协议,本地主机地址,本地端口号,远端主机地址和远端端口号)来描述。
s_sockfd=socket(AF_INET,SOCK_STREAM,0),该函数建立指定格式,数据类型和协议下的套接口。地址格式为AF_INET(唯一支持的格式);数据类型SOCK_STREAM表示建立流式套接口;第三个参数为0,即协议缺省。
Bind(s_sockfd,(struct sockaddr*)server,sizeof(server)),该函数建立服务器本地的半相关。其中,server是sockaddr_in结构,其成员描述了本地端口号和本地主机地址,经过bind()将服务器进程在网上标识出来。然后建立连接,先是调用listen()函数表示开始侦听,再通过accept()调用等待接收连接。Listen(s_sockfd,2)表示连接请求队列长度为2,即允许有两个请求。若有多于两个请求,则出现错误,给出错误代码。ns=accept(s_sockfd,(struct sockaddr*) chent, namelen), accept() 阻塞缺省等待请求队列中的请求,一旦有连接请求来到,该函数就建立一个和s有相同属性的新的套接口。Client也是一个sockaddr_in结构,连接建立时填入请求连接的套接口的半相关信息。然后,就可以接收和发送数据了。
recv
您可能关注的文档
- 耶鲁公开课笔记之二耶鲁公开课笔记之二.doc
- 耶鲁大学开放课程耶鲁大学开放课程.docx
- 耶鲁金融市场第7课耶鲁金融市场第7课.docx
- 耶鲁大学 申请攻略耶鲁大学 申请攻略.doc
- 耶鲁金融市场第6课耶鲁金融市场第6课.docx
- 耶格运动心肺介绍耶格运动心肺介绍.docx
- 耻骨骨折的病例讨论耻骨骨折的病例讨论.doc
- 聂开雄开题报告聂开雄开题报告.docx
- 聆听大师的声音聆听大师的声音.doc
- 聂鹏-开题报告聂鹏-开题报告.doc
- 大学生职业规划大赛《新闻学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《应用统计学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《中医学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《信息管理与信息系统专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《汽车服务工程专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《水产养殖学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《市场营销专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐表演专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
文档评论(0)