电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

linux聊天室报告(特制借鉴)

  • 资源ID:179781297       资源大小:415KB        全文页数:20页
  • 资源格式: DOC        下载积分:25金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要25金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

linux聊天室报告(特制借鉴)

Linux程序设计期末大作业报告 信息工程与自动化学院 专 业: 计算机科学与技术 年 级: 2009级 学 生 姓 名: 徐兴繁 学 生 学 号: 200910405214 任 课 教师姓名: 李英娜 任 课 教师职称:讲 师 摘要:shell是一种具备特殊特殊功能的程序,它是介于使用者和UNIX、/linux操作系统之核心程序间的一个接口。本设计主要实现一个Linux下的局域网聊天工具的设计。该设计主要分为两部分,客户端部分和服务器部分。设计并实现一个简单的聊天室程序,可以是终端字符界面,支持用户管理,用户名/密码注册和登录,客户端登陆到服务器聊天后,可以在聊天室内与其他用户交流(这个聊天室中的任何一个用户输入一段字符后,室内的其他用户都可以看到这句话)。据此,聊天程序分为客户端和服务器端。客户端对应每一个参加聊天的用户,完成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能。两个部分都使用C语言,利用vi编辑器,通过Berkeley套接口编程实现相关功能。关键词:linux,shell编程,聊天室,客户端,服务器,套接字。目录1、期末大作业的目的22、大作业的基本要求33、设计内容33、1 shell编程(20分)33.1.1字符串的判断33.1.2月份的截取转换43、2 聊天室编程(50分)53.2.1需要实现的主要功能63.2.2 客户端功能模块63.2.3 服务器功能模块73.2.4代码实现:73.2.4设计结果截图:144、小结:175、参考文献171、期末大作业的目的Linux程序设计大作业是在完成理论课程学习之后,通过大作业的方式对学生进行综合实践考核,在学生掌握Linux的基本编程知识及常用的操作命令基础上,提高学生对所学知识的应用能力,特别是:煅炼学生搜集有关Linux资料,在资料文档的帮助下,运用Linux的基本知识及常用的操作命令来解决问题的能力。2、大作业的基本要求要求能完成给定的编程任务,并写出相应的大作业总结报告2.1、根据合理的进度安排,按照程序的流程及方法,踏实地完成期末大作业的任务安排。 2.2、按照任务要求,完成各个功能模块的功能划分和程序编写,调试代码并运行。 2.3、按要求撰写大作业报告。3、设计内容3、1 shell编程(20分)要求:写出2个Shell程序,每个不少于15行(如实现自己模拟shell下的cd、ls指令等),说明程序主要功能,每行给出注释;3.1.1 字符串的判断写一个脚本,检测用户输入串的合法性, 要求串由大小写字母、数字组成,无标点、特殊符号、空格。思路:将输入的串中 非字母数字的内容删除或替换为空后若和原来输入的相同则合法,否则不合法。#!/bin/bashisvalidAlphaNum()compressed="$(echo $1 | sed s/:alnum:/g)" #替换不合要求字符为空if "$compressed" != "$1" ; thenreturn 1# not valideelsereturn 0 # validefi#函数体,判断字串的合法性echo -n "Enter input:"# -n 强制不换行read input#读取内容存到input中, 无 $ 符号if ! isvalidAlphaNum "&input" ;then #加引号,否则可能会出错。echo "invalide"exit 1elseecho "valide"fiexit 0运行截图:3.1.2 月份的截取转换输入一个 “month day year”格式的日期串,程序将处理” month”为 其英文单词的前三个字母,第一个字母大写,其余的小写。思路:首先判断month是数字、还是单词,若是数字,则可查“数字month”映射表(自定义case结构);若是单词,则取前三个字母,并格式化。#!/bin/bashmonthnoToName() case $1 in 1 ) month="Jan" ; 2 ) month="Feb" ; 3 ) month="Mar" ; 4 ) month="Apr" ; 5 ) month="May" ; 6 ) month="Jun" ; 7 ) month="Jul" ; 8 ) month="Aug" ; 9 ) month="Sep" ; 10) month="Oct" ; 11) month="Nov" ; 12) month="Dec" ; * ) echo "$0: Unknown numeric month value $1" >&2; exit 1 # default, esac# return 0if $# -ne 3 ; then #若参数个数不为3,则有误echo “Usage: $0 month day year”exit 1fi#判断参数1是数字还是单词,方法 替换串中所有数字,若结果为空,则为数字,否则为单词。if -n $(echo $1 | sed s/:digit:/g) # -n 检测串是为空thenmonthnoToName $1# 数字else# 取第一个字母并将其变为大写,再将结果与取出的第二三字母组合month=”$(echo $1 | cut c1 | tr :lower: :upper:)“month=”$month$(echo $1 | cut -c2-3 | tr :upper: :lower:)”fiecho $month $2 $3 # 输出结果exit 0运行截图:3、2 聊天室编程(50分)设计并实现一个简单的聊天室程序,可以是终端字符界面,支持用户管理,用户名/密码注册和登录,客户端登陆到服务器聊天后,可以在聊天室内与其他用户交流(这个聊天室中的任何一个用户输入一段字符后,室内的其他用户都可以看到这句话)。据此,聊天程序分为客户端和服务器端。客户端对应每一个参加聊天的用户,完成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能。3.2.1需要实现的主要功能(1)客户端输入服务器IP和端口号(2)服务器成功启动(3)每个客户端可以找到服务器,并可以与服务器进行连接(4)客户端与服务器可以实现通讯3.2.2 客户端功能模块(1)连接服务器连接服务器之前需要解析服务器地址,创建套接字,设置相关参数。(2)发送消息功能3.2.3 服务器功能模块3.2.4代码实现:(1)客户端代码#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#define TRUE 1#define PORT 1000 static int sockfd;void recvfromserver() /接受服务器消息线程入口函数char mes1024;int nbytes=0;while(1)memset(mes,0,sizeof(mes);nbytes=read(sockfd,mes,sizeof(mes);if(nbytes>0)mesnbytes=0;printf("%sn",mes);pthread_exit(NULL);int main(int argc, char *argv)/int sockfd;char buffer1024;struct sockaddr_in server_addr;struct hostent *host;int portnumber,nbytes;char *strhost="127.0.0.1"char clientname20;char password20;char mes1024;int thr_id; /* thread ID for the newly created thread */pthread_t p_thread; /* threads structure */if(argc!=1)fprintf(stderr,"Usage:%s an",argv0);exit(1);if(host=gethostbyname(strhost)=NULL)fprintf(stderr,"Gethostname errorn");exit(1);/* 客户程序开始建立 sockfd 描述符 */printf("正在建立套接口.n");if(sockfd=socket(AF_INET,SOCK_STREAM,0)=-1)fprintf(stderr,"Socket Error:%san",strerror(errno);exit(1);/* 客户程序填充服务端的资料 */bzero(&server_addr,sizeof(server_addr);server_addr.sin_family=AF_INET;server_addr.sin_port=htons(PORT);server_addr.sin_addr=*(struct in_addr *)host->h_addr);printf("套接口创建成功,正在链接服务器.n");/* 客户程

注意事项

本文(linux聊天室报告(特制借鉴))为本站会员(8**)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.