- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五可上传
北 京 XX 大 学
2013学年—2014学年第 2 学期 Linux应用 实验报告
专业名称: 班 级:
姓 名: 学 号:
实验题目: 实验五 Linux下的Socket和Shell脚本编程初步
实验环境:Linux终端/或基于Linux的Eclipse集成开发环境
实验目的:
进一步熟悉练习 Linux的socket和shell脚本编程。
实验内容:
Socket:编写一个简单的服务器、客户端(使用TCP)——服务器端一直监听本机的号端口如果收到连接请求,将接收请求并接收客户端发来的消息;客户端与服务器端建立连接并发送一条消息。
第一段是服务器端程序:
第二段是客户端程序:
Linux网络循环服务器和并发服务器模型;并发服务器模型有几种,其各自的特点?
答:在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。
目前最常用的服务器模型有:
循环服务器:服务器在同一时刻只能响应一个客户端的请求
并发服务器:服务器在同一时刻可以响应多个客户端的请求
循环服务器有两种:
1.UDP循环服务器
UDP循环服务器的实现方法:
UDP循环服务器每次从套接字上读取一个客户端的请求-处理-然后将结果返回给客户机。因为UDP是非面向连接的,没有一个客户端可以老是占住服务端。只要处理过程不是死循环,服务器对于每一个客户机的请求总是能够满足。
UDP循环服务器模型为:
socket(...);
bind(...);
while(1)
{
?? recvfrom(...);
?? process(...);
?? sendto(...);
}
2.TCP循环服务器
TCP循环服务器的实现方法
TCP循环服务器接受一个客户端的连接,然后处理,完成了这个客户的所有请求后,断开连接。TCP循环服务器一次只能处理一个客户端的请求,只有在这个客户的所有请求满足后,服务器才可以继续后面的请求。如果有一个客户端占住服务器不放时,其它的客户机都不能工作了,因此,TCP服务器一般很少用循环服务器模型的。
TCP循环服务器模型为:
socket(...);
bind(...);
listen(...);
while(1)
{
?? accept(...);
?? process(...);
?? close(...);
}
并发服务器有两种:
1.TCP并发服务器 (第一个实验中所写代码)
TCP并发服务器的思想是每一个客户机的请求并不由服务器直接处理,而是由服务器创建一个子进程来处理。
TCP并发服务器模型:
socket(...);
bind(...);
listen(...);
while(1){
?? accpet(...);
?? if(fork(...) == 0)
{
??? process(...);
??? close(...);
exit(...);
}
close(...);
}
2.UDP并发服务器
人们把并发的概念用于UDP就得到了并发UDP服务器模型. 并发UDP服务器模型其实是简单的.和并发的TCP服务器模型一样是创建一个子进程来处理的 算法和并发的TCP模型一样.
UDP并发服务器模型:
socket(...);???????? //创建一个数据报类型的套接字
bind(...);?????????? //绑定公认的短口号
while(1)???????????? //开始接收客户端的连接
{????????????????????
recvfrom(...); //接收和处理客户端的UDP数据报
if(fork(...)==0)?? //创建子进程
??{
process(...);
sendto(...);
}
Shell脚本(hell Script)是一种为shell编写的脚本程序。但要知道,shell和shell script是两个不同的概念,–p “string1”a
read –p “string2”b
// 根据前后文继续补充。。。
If [ “$a”= 1 ] ; then
// 请学习echo和wc
n=b|wc -m
shell中条件测试test写脚本程序时经常遇到的问题就是判断字符串是否相等可能还要检查文件状态数字测试
调试并运行以下脚本程序,并说明其功能。
#!/bin/sh
i=1
groupadd classBJFU
while [
文档评论(0)