linux聊天室报告可编辑docWord文档下载推荐.docx

上传人:b****2 文档编号:13433490 上传时间:2022-10-10 格式:DOCX 页数:12 大小:90.02KB
下载 相关 举报
linux聊天室报告可编辑docWord文档下载推荐.docx_第1页
第1页 / 共12页
linux聊天室报告可编辑docWord文档下载推荐.docx_第2页
第2页 / 共12页
linux聊天室报告可编辑docWord文档下载推荐.docx_第3页
第3页 / 共12页
linux聊天室报告可编辑docWord文档下载推荐.docx_第4页
第4页 / 共12页
linux聊天室报告可编辑docWord文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

linux聊天室报告可编辑docWord文档下载推荐.docx

《linux聊天室报告可编辑docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《linux聊天室报告可编辑docWord文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

linux聊天室报告可编辑docWord文档下载推荐.docx

1的目的

《Linux》是在完成理论课程学习之后综合实践在学生掌握Linux的基本知识及常用的操作命令基础上提高学生对所学知识的应用能力特别是煅炼学生搜集有关Linux资料在资料文档的帮助下运用Linux的基本知识及常用的操作命令来解决问题的能力

的基本要求

要求能完成给定的任务并写出相应的总结报告

1根据合理的进度安排按照程序的流程及方法踏实地

2

3

31shell编程20分

要求写出2个Shell程序每个不少于15行如实现自己模拟shell下的cdls指令等说明程序主要功能每行给出注释

com字符串的判断

写一个脚本检测用户输入串的合法性要求串由大小写字母数字组成无标点特殊符号空格

思路将输入的串中非字母数字的内容删除或替换为空后若和原来输入的相同则合法否则不合法

binbash

isvalidAlphaNum

compressed"

echo1seds[[alnum]]g"

替换不合要求字符为空

if["

compressed"

"

1"

]then

return1notvalide

else

return0valide

fi

函数体判断字串的合法性

echo-n"

Enterinput"

-n强制不换行

readinput读取内容存到input中无符号

ifisvalidAlphaNum"

input"

then加引号否则可能会出错

echo"

invalide"

exit1

else

valide"

fi

exit0

运行截图

com份的截取转换

输入一个monthdayyear格式的日期串程序将处理month为其英文单词的前三个字母第一个字母大写其余的小写

思路首先判断month是数字还是单词若是数字则可查数字month映射表自定义case结构若是单词则取前三个字母并格式化

monthnoToName

case1in

1month"

Jan"

2month"

Feb"

3month"

Mar"

4month"

Apr"

5month"

May"

6month"

Jun"

7month"

Jul"

8month"

Aug"

9month"

Sep"

10month"

Oct"

11month"

Nov"

12month"

Dec"

0Unknownnumericmonthvalue1"

2exit1default

esac

return0

if[-ne3]then若参数个数不为3则有误

echoUsage0monthdayyear

判断参数1是数字还是单词方法替换串中所有数字若结果为空则为数字否则为单词

if[-necho1seds[[digit]]g]-n检测串是为空

then

monthnoToName1数字

取第一个字母并将其变为大写再将结果与取出的第二三字母组合

monthecho1cut–c1tr[lower][upper]

monthmonthecho1cut-c2-3tr[upper][lower]

echomonth23输出结果

32聊天室编程50分

设计并实现一个简单的程序可以是终端字符界面支持用户管理用户名密码注册和登录这个聊天室中的任何一个用户输入一段字符后室内的其他用户都可以看到这句话据此聊天程序分为客户端和服务器端客户端对应每一个参加聊天的用户完成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能

1客户端输入服务器IP和端口号

2服务器成功启动

3每个客户端可以找到服务器并可以与服务器进行连接

4客户端与服务器可以实现通讯

com客户端功能模块

1连接服务器

连接服务器之前需要解析服务器地址创建套接字设置相关参数

2发送消息功能

com服务器功能模块

com现

1客户端代码

include

defineTRUE1

definePORT1000

staticintsockfd

voidrecvfromserver接受服务器消息线程入口函数

charmes[1024]

intnbytes0

while1

memsetmes0sizeofmes

nbytesreadsockfdmessizeofmes

ifnbytes0

mes[nbytes]\0

printf"

s\n"

mes

pthread_exitNULL

intmainintargccharargv[]

intsockfd

charbuffer[1024]

structsockaddr_inserver_addr

structhostenthost

intportnumbernbytes

charstrhost"

com1"

charclientname[20]

charpassword[20]

intthr_idthreadIDforthenewlycreatedthread

pthread_tp_threadthreadsstructure

ifargc1

fprintfstderr"

Usages\a\n"

argv[0]

exit1

ifhostgethostbynamestrhostNULL

Gethostnameerror\n"

客户程序开始建立sockfd描述符

printf"

正在建立套接口\n"

ifsockfdsocketAF_INETSOCK_STREAM0-1

SocketErrors\a\n"

strerrorerrno

客户程序填充服务端的资料

bzeroserver_addrsizeofserver_addr

server_addrsin_familyAF_INET

server_addrsin_porthtonsPORT

server_addrsin_addrstructin_addrhost-h_addr

套接口创建成功正在链接服务器\n"

客户程序发起连接请求

ifconnectsockfdstructsockaddrserver_addrsizeofstructsockaddr-1

ConnectErrors\a\n"

连接成功了

链接服务器成功\n欢迎来到聊天室\n"

请输入你的用户昵称\n"

scanf"

s"

clientname

请输入登录密码\n"

password

\n登陆成功"

writesockfdclientnamesizeofclientname

\n开始聊天\"

Quit\"

断开连接\n\n"

thr_idpthread_createp_threadNULLrecvfromserverNULL

memsetbuffer0sizeofbuffer

scanf"

buffer

strcatmesclientname

strcatmes"

"

strcatmesbuffer

printf"

mainthreads\n"

ifwritesockfdmessizeofmes-1

fprintfstderr"

WriteErrors\n"

exit1

ifstrcmpbuffer"

Quit"

0

break

结束通讯

closesockfd

exit0

2服务器代码

defineLINE1000在一条消息中最大的输出字符数

defineLISTENQ20最大监听队列

definePORT1000监听端口

defineFD20最大的在线用户数量

voidget_clientvoid

intsockfdi

staticinti0i表示当前client数组中最大的用户的i值

staticintclient[FD]

voidrecvandsendvoid监听转发线程入口函数

intindex0

intlen

intoutindex0

ifi0

memsetbuffer0sizeofbuffer

nbytes0

index

nbytesreadclient[index]buff

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1