linux聊天室报告_第1页
linux聊天室报告_第2页
linux聊天室报告_第3页
linux聊天室报告_第4页
linux聊天室报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业:年级:学生姓名: 学生学号:任课教师姓名:任课教师职称:匡呗理N 乂孝Linux程序设计期末大作业报告信息工程与自动化学院计算机科学与技术2009 级徐兴繁5214李英娜讲师摘要:shell是一种具备特殊特殊功能的程序,它是介于使用者和UNIX, /linux 操作系统之核心程序间的一个接口。本设计主要实现一个Linux下的局域网聊天 工具的设计。该设计主要分为两部分,客户端部分和服务器部分。设计并实现一 个简单的聊天室程序,可以是终端字符界面,支持用户管理,用户名/密码注册 和登录,客户端登陆到服务器聊天后,可以在聊天室内与其他用户交流(这个聊 天室中的任何一个用户输入一段字符后,室内

2、的其他用户都可以看到这句话)O 据此,聊天程序分为客户端和服务器端。客户端对应每一个参加聊天的用户,完 成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能。 两个部分都使用C语言,利用vi编辑器,通过Berkeley套接口编程实现相关功 能。关键词:linux, shell编程,聊天室,客户端,服务器,套接字。目录1、期末大作业的目的22、大作业的基本要求33、设计内容33、1 shell 编程(20 分)3字符串的判断3月份的截取转换43、2 聊天室编程(50分)5需要实现的主要功能6客户端功能模块6服务器功能模块7代码实现:7设计结果截图:144、小结:175、参考文献1

3、71、期末大作业的目的Linux程序设计大作业是在完成理论课程学习之后,通过大作业的方式 对学生进行综合实践考核,在学生掌握Linux的基本编程知识及常用的操作命令 基础上,提髙学生对所学知识的应用能力,特别是:煨炼学生搜集有关Linux 资料,在资料文档的帮助下,运用Linux的基本知识及常用的操作命令来解决问 题的能力。2、大作业的基本要求要求能完成给定的编程任务,并写岀相应的大作业总结报告、根据合理的进度安排,按照程序的流程及方法,踏实地完成期末大作业的任务 安排。、按照任务要求,完成各个功能模块的功能划分和程序编写,调试代码并运行。 、按要求撰写大作业报告。3、设计内容3、1 shel

4、l 编程(20 分)要求:写出2个Shell程序,每个不少于15行(如实现自己模拟shell下 的cd、Is指令等),说明程序主要功能,每行给出注释;3.1.1字符串的判断写一个脚本,检测用户输入串的合法性,要求串由大小写字母、数字组成, 无标点、特殊符号、空格。思路:将输入的串中非字母数字的内容删除或替换为空后若和原来输入的相同 则合法,否则不合法。#!/bin/bashisvalidAlphaNum()compressed二$(echo$1Iseds/:alnum:roollocalhos t root# rootloca 1 hos tool # bash: ./char:权限不够 r-

5、ootloca lhos t root# roo tloca 1 hos too l # En ter input:he 1lo inYa 1 ider-ootloca 1 hos t root #v i char/charchiiud r cha r./char./charEn ter input: Niy 1 he Ip you ! invaI ide|rooth_addr);printf (套接口创建成功,正在链接服务器.n);/*客户程序发起连接请求*/if(cormect(sockfd,(struct sockaddr *)(&server addr),sizeof(struct s

6、ockaddr)=-l)fprintf (stderr, Connect Error:%san,f, strerror (errno); exit (1);/*连接成功了 /printf(M链接服务器成功n欢迎来到聊天室!nw);printf (M请输入你的用户昵称:n);scanf (%s,dientname);printf(M请输入登录密码:nM);seanf(%s,password);printf (,rn 登陆成功);.nP0RT);/*监听sockfd描述符/if(listen(sockfd,LISTENQ)=-1)fprintf (stderr, Listen error: %sn

7、a*, strerror (errno); exit (1);thrid = pthread create(&p_thread, NULL, reevandsend, NULL); printf(M欢迎来到聊天室!n”);while(l)/*服务器阻塞,直到客户程序建立连接*/if(maxi=20)printf (M以达到人数上线n);cont inue;sin_size=sizeof(struct sockaddr in);if(new_fd=accept(sockfd,(structsockaddr*) (&client addr),&sin size)=-l)fprintf(stderr

8、,MAccept error:%sna,strerror(errno); exit (1);/fprintf (stderr,,rServer get connection from %snr, inet ntoa) ; / client!maxi+二new fd;printf (,rn 新用户进入聊天室%dnM, new_fd3);close(sockfd);exit(0);32. 4设计结果截图:服务器:第一个访客rootk)ca llwsh/mnl/usb/clial文件(E) 编辑d) 査看世) 终端 转到(Q 帮助(旦) rQQtIoca Ihost chm# ./cl ientI止

9、在建立套接口 套接口创建成功.止在链接服务佛链接服务器成功欢迎来到聊犬室!请输入你的用户昵称;蓄输入登录密码;*登陆成功开始聊天LQii广断开连接)你好!徐兴繁:你好!小王:你好!你的作业做好了没冇没冇呢徐兴燈:没冇呢小王:做好了站我看呛好的徐決燈好的辜老师;下周四别忘了交棗饕?第二个访客第三个访客4、小结:通过本次设计对Linux课程的shell编程以及网络聊天室的设计,确实积累 和总结了不少的经验,锻炼了我的独立工作和实际动手能力,加深了对计算机网 络中socket工作原理及其相互联系的认识,提高了对复杂的综合性实践环节具 有分析问题、解决问题、概括总结的实际工作能力,对网络编程项目的开发

10、、设 计过程有初步认识。本次设计中也存在很多问题,一开始的客户端和服务器不能连接成功,还有 就是当已经有用户开始聊天之后,新进来的用户发送的信息不能在之前的客户端 看到,经过多次修改和查阅资料完成设计。有新用户进来的时候虽然服务器能监 听到,但是没有实时刷新给其他的客户端,导致其他用户看不到信息。经过多次 修改几乎满足了老师给的要求,能够简单的网络聊天功能。但是由于设计时间较 短,还存在很多问题,还有待于我们进一步完善其功能。但我从中学到了不少的 道理,真正的理解到,理论与实践之间还是有很大的距离,这必将有利于我们以 后的学习。使我明白,在以后的学习中,要不断的完善自己的知识体系结构,注 意理论与实践的结合,学知识关键是要学活,这样所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论