TCP课程设计之网络聊天室.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP课程设计之网络聊天室

南京工程学院 通信工程学院 题 目 网络聊天室的设计 课 程 名 称 通信应用软件课程设计 专 业 多媒体通信 班 级 媒通111 学 生 姓 名 张 瑜 学 号 208110515 设 计 地 点 信息楼C-216 指 导 教 师 耿 鹏 目录 1.概述 3 2.设计介绍 5 2.1功能描述 5 2.2流程图 6 3.程序实现(关键代码解释) 10 4.功能演示(说明) 13 5.总结与展望 14 1.概述 1.1系统概述 Linux是一种针对PC计算机和工作站得操作系统。他具有像Windows和Mac那样的功能齐全的图形用户界面。由于Linux的开源的特点,越来越多的人转而使用Linux作为PC机得操作系统。 Linux系统支持三种并发方式:多进程、多线程、以及I/O多路复用。而多线程技术是并行技术中开销较小,效率较高的一种方式,与其他两种方式相比,线程占用更少的系统资源,而且效率更高,是并发技术中最常用的方式。 网络聊天程序是目前应用极为广泛的一种网络软件,对于方便人们的交流沟通非常有效,同时,作为一种典型的网络应用,编写网络聊天程序是学习基于Linux的网络编程的有效方法。 服务器端:循环等候客户连接请求,一旦有客户连接请求,开启一个子线程接受并处理客户请求,接受来自客户的信息。然后将客户信息反转后再返回给客户端。主线程继续等待其他客户请求。服务器具有同时处理多个用户的能力。 客户端:首先与服务器建立连接,然后向服务器发送数据进行交互,接受服务器的反馈信息并显示,之后继续等待用户输入直至用户输入ctrl+D结束通信。客户端接到输入ctrl+D后,客户端关闭连接并退出。 本次课题设计是在使用Linux线程和Socket接口的基础上,编写网络聊天程序,从而掌握Linux应用程序开发的基本方法,练习Linux线程及Socket编程的方法,从而将所学知识融会贯通。 1.2课程设计目的 通信应用软件课程设计是实践性教学环节之一。通过课程设计,使学生掌握套接字的基本概念,结合实际的操作和设计,巩固课堂教学内容。学生在掌握TCP/IP协议及Socket编程原理和技术的基础上,将理论与实际相结合,应用现有的程序开发工具,规范、科学地完成一个接近实际的应用程序,把理论课与实验课所学内容做一个综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。 1.3课程设计要求 综合运用本课程的知识设计安排1周的时间进行课程设计,一般人为一组。采用自由分组、推选组长的形式,由将分组情况报到教师处 登录模块设计 用户登录需输入相关信息,经过相关的检测后,方可登录。登陆后可查看群聊信息,且可与其他人进行聊天。 2.2.3服务器模块 服务器模块流程图 该服务器界面用于显示用户上线与下线的信息,不可用于聊天,是用于将客户端群聊时发送的信息转发给每一个在线用户,处于一个承接的作用。 2.2.4消息格式化模块 消息格式化模块流程图 消息格式化是将用户的对应信息合成固定形式进行传送。 2.2.5群聊模块 群聊模块流程图 用户登陆以后,可与显示在线的任何用户进行聊天,也可与在线用户一起进行群聊。 程序实现 3.1主要函数的创建 客户端: int main(void) void *get_server(void* sockfd) //get_server函数,用于接受服务器转发的消息 服务器端: int main() void *get_client(void *sockfd) //运行get_client函数,处理用户请求 新线程的创建: thr_id = pthread_create(p_thread, NULL, recvfromserver, NULL); 3.2关键程序解释 3.2.1 客户程序开始建立 sockfd 描述符 printf(正在建立套接口...\n); if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { fprintf(stderr,Socket Error:%s\a\n,strerror(errno)); exit(1); } sockfd 描述符的创建: AF_INET:表示IPv4的地址族 SOCK_STREAM:表示创建的是流式套接

文档评论(0)

cuotian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档