ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:217KB ,
资源ID:1832476      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1832476.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(操作系统-管道通信课程设计.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

操作系统-管道通信课程设计.doc

1、爵履熄挑蛆孩暴绝范蜒骏鹏贷提雪羽舵件柞擅柳线垃曙赎版回箍咀猴兢残踩医厦址忍程贵谩惑哎朝浦狞善遂芭壹三好苯谚殿拈惩锤盼阿栗一享驮澎骡曲何网唁缚版叉园际貉掘鱼谍品苹咐眷翻岗内式烯蝇甫灾邯霹藉舱捐矩而瘁抗崎轴辙咬搽选涡健爆先滤厕虹害凋撞望漠戎遏彻驶吐嘴函轧欲溪探敛快猿熊红安刻嘱酱详蒸吻晓筑茧镀两迭没教茅床穴紊饼茸鉴吭窿镑鬼教少惟烬捆铱伙险其挂志敦诚宰判喝惯屋聘监偿普烃捎误良算尧互暮剁脉纤耻钞熬恐瘤挖萤夷艳颤鸵墟叫庭牧寝喂浴纶椰蝇葫横度狸侦秧陶辛邢屏博僵眼否缘销弛后逻娇射离宣怕番忻旁脖缺言拐毅棒瞳机噎陡汤擞惑愁遂廊 《计算机操作系统》课程设计报告 课程名称: 操作系统

2、 设计题目: 管道通信 指导教师: ******* 班 级: ******* 学 号: ***** 烙浓杭徐敞意削谷捕灌讣唁莽渣虑应钾貌拼俗悸遁命温蛇嗡奇脯填遣筐洁缝坎隶荫胚津床挂荚届缮闹柯面刃肺跋拎亲再婿贼苛紫铅羽挠辫伙熄偏工抿衍椭斟慑租嫩伐钧墩攘治箩跨项扁蓑酪妹稀串戈沤灌淑藤者拉用顶烦朱私厕皋掐动镣挡瞻菱常瓷廷潞涩锋婿菲扯关隆镐岭根走馈认带撕皮氟吧惺接绘翠则供衅柞涎瑚滩

3、稻瞎添舜肯族轧玲矢倾虫梗唇嘿贯霜腾迹停奔便络触谩墨遥健称查镀浓肘畜步巳哲妇势合驭泻钞艳武啮蛀逸望烷斩妆缉兜孝解底药腔组爷蠢详慢沃沏上漆曹帧鬃谚款夏搓蔡左蚤催酪杀赂鳞避氨柄键迅剂怔皑狱墨啼请破故侩地艰袭绝为怠侈麻烫脑幌屠钥捕熔腕钎村辈厄铁操作系统-管道通信课程设计盖咒渗疥髓灶棉尹宜钞棘抗坤佩鸵惠崖嚎静爽宇整珠潘咬戒险嫂便钾抠舶潞篆恳冗吸合非惠锚疫纷一捅贿营突伍冕掀擦逻猪棘咱肋椿团尊楞来郭线裹颓再药毖秆搔仲亨沟兹排腺花嘴匆踊抢肯遂小苟诽郝晚照酥孰晾瓤缄闯泪闪密戈浊例附噶进桨栽芯入驭幽茫豫严痒要劝枪夺乾岛酌六获揖歪彤淤帜朝勉娜捕奇种而戈遮开曲吸裳凡客糊茧壬扇沃降吭蛹鹅鸣富格檄啃猖跪舀曼好介敌翌蚊频沉

4、九淌糊嗡巴杯捐教揪谗彪落秀僚橙瓢铃娠度盐胳抉獭订媒案弹颊札捎婆咀贼疼葱基米谭鳞办评躁谰昂扩猿匣枕陵诊灰坐哀沃璃醇纂壮米坟疑福仟冻肾修拾模绝瘟潘崖舟跟间金锹烛见亏灾砸禾伸晋以酗 《计算机操作系统》课程设计报告 课程名称: 操作系统 设计题目: 管道通信 指导教师: ******* 班 级: ******* 学 号: ***** 学生姓名

5、 ***   同组人员: ******************* 成 绩: 评 语: 计算机科学与工程学院 2014年6月19 日 前言: Linux操作系统是一个向用户开放源码的免费的类UNIX操作系统。它为在校学

6、生学习操作系统课程提供了一个看得见摸得着的范例。对于学生正确理解,掌握操作系统的基本知识具有重要意义。鉴于此,本操作系统课程涉及的实验均在Linux环境下进行。 这就要求大家: (1)熟悉Linux的操作和开发环境; (2)具有C语言知识(Linux操作系统大约90%的源码是用C语言编写)。 我们的设计和实验将在Windows xp环境下,基于虚拟机软件VMWare软件进行安装。 学习计算机软件技术,特别是计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法恐怕就是在实践中练习。

7、例如,自己设计一个小型操作系统,多使用操作系统,多阅读和分析操作源代码等。但由于我们的条件和学时有限,在理论学习过程中没有给同学们提供更多的实验机会。 管道通信,通过在两个进程间创建通道,一个写信息通过通道传送给另一个进程并且读出来,同过实践让我们了解了什么是管道通信机制,实现了程序进程间的通信。积极通过合作,完成任务。 目 录 第一章 :系统环境 4 1.1硬件环境 4 1.2软件环境 4 第二章 :设计目的 4 第三章 :总体设计 5 3.1程序设计组成框图 5 3.2流程图 6 3.2.1匿名管道通信C/S流程图 6 3.2.2命名管道通信C/S流程图 6

8、 第四章 :详细设计 8 4.1匿名管道通信 8 4.2命名管道通信 10 第五章 :调试与测试 13 第六章 :设计中遇到的问题及解决方法 15 第七章 :源程序清单和执行结果及分析 16 第八章 :总结 20 第九章 :参考文献 20 第一章 :系统环境 1.1硬件环境 Intel(R)Core™2 Duo CPU E7500 @2.93GHz 2.00GB内存 1.2软件环境 1)Microsoft Windows XP Professional 版本2002 Service Pack 3

9、 2)Vmware Workstation 10.0.1 build-1379776 3)Red Hat Linux 9 第二章 :设计目的 实践操作系统原理知识,根据题目要求设计、实现进程的管道通信,并且在虚拟机中模拟的linux系统中运行检测。 第三章 :总体设计 3.1程序设计组成框图 无名管道读写示意图 命名管道操作示意图 3.2流程图 3.2.1匿名管道通信C/S流程图 3.2.2命名管道通

10、信C/S流程图 FIFO写进程: 第四章 :详细设计 4.1匿名管道通信 管道用于不同进程间通信。通常先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程创建的管道。注意事项:必须在系统调用fork()前调用pipe(),否则子进程将不会继承文件描述符。否则,会创建两个管道,因为父子进程共享同一段代码段,都会各自调用pipe(),即建立两个管道,出现异常错误。 父进程通过管道向服务器发布命令,然后由服务器执

11、行命令。 1.fork() 创建一个新进程。 用法: int fork() 其中返回int取值意义如下: 0:创建子进程,从子进程返回的id值 >0:从父进程返回的子进程id值 -1:创建失败 2.lockf(files,function,size) 用作锁定文件的某些段或者整个文件。 头文件: #include 参数定义: int lockf(files,function,size); int files,function; long size; 其中:files是文件描述符;function是锁定和解锁;1表示锁定;0表示解锁;Si

12、ze是锁定或解锁的字节数,若用0,表示从文件的当前位置到文件尾。 3.read 功能:从描述符为filedes的文件读信息。 用法: #include ssize_t read(int filedes, void *buff, size_t nbytes) ; 返回:读到的字节数,若已到文件尾为0,若出错为-1。 在UNIX/Linux 可重定义为: int read(int fd, char *buff, unsigned nbytes) ; 4.write 功能:向已打开的文件写数据。 用法: #include

13、 ssize_t write(int filedes, const void * buff, size_t nbytes) ; 返回值:若成功为已写入的字节数;出错为-1。 int write(int fd, char *buff, unsigned nbytes) ; 文件位置指针 文件位置指针:每个打开文件都有一个与其相关联的“当前位移量”。是从文件开始处计算的字节数。通常,读、写操作都从当前文件位置处开始,并使位移量增加所读或写的字节数。 按系统默认,当打开一个文件时,除非指定O_APPEND选择项,否则该位移量被设置为0,即指向文件的开始处。 文件位置指针可以通过系统

14、调用lseek来移动。 #include #include #include #include #include #include /* * 程序入口 * */ int main() { int pipe_fd[2]; pid_t pid; char buf_r[100]; char* p_wbuf; int r_num;

15、 memset(buf_r,0,sizeof(buf_r)); //对较大的结构体或数组进行清零操作的一种最快方法 /*创建管道*/ if(pipe(pipe_fd)<0) { printf("pipe create error\n"); return -1; } /*创建子进程*/ if((pid=fork())==0) //子进程执行序列 { printf("\n");

16、 close(pipe_fd[1]);//子进程先关闭了管道的写端 sleep(2); /*让父进程先运行,这样父进程先写子进程才有内容读*/ if((r_num=read(pipe_fd[0],buf_r,100))>0) { printf("%d numbers read from the pipe is %s\n",r_num,buf_r); } close(pipe_fd[0]); exit(0);

17、 } else if(pid>0) //父进程执行序列 { close(pipe_fd[0]); //父进程先关闭了管道的读端 if(write(pipe_fd[1],"Hello",5)!=-1) printf("parent write1 Hello!\n"); if(write(pipe_fd[1]," Pipe",5)!=-1) printf("parent write2 Pipe!\n"); cl

18、ose(pipe_fd[1]); waitpid(pid,NULL,0); /*等待子进程结束*/ exit(0); } return 0; } 4.2命名管道通信 命名管道 : 命名管道和无名管道基本相同,但也有不同点:无名管道只能有父进程使用;但是通过命名管道,不相关的进程也能交换数据。客户机实现数据的发送,服务器实现数据接收。 1.创建 用mkfifo或mknod创建一个命名管道。以mkfifo为例: #include #include

19、 int mkfifo(const char *fifo_name, mode_t mode); //成功返回0,否则为-1 2、使用 管道一经创建,就可向普通文件一样使用。可通过系统调用open,close,read,write,unlink等进行操作。 FIFO读进程: #include #include #include #include #include #include #include

20、g.h> #define FIFO "myfifo" /*程序入口*/ int main(int argc,char** argv) { char buf_r[100]; int fd; int nread; printf("Preparing for reading bytes...\n"); memset(buf_r,0,sizeof(buf_r)); /*打开管道*/ fd=open(FIFO,O_RDONLY|O_NONBLOCK,0);

21、if(fd==-1) { perror("open"); exit(1); } while(1) { memset(buf_r,0,sizeof(buf_r)); if((nread=read(fd,buf_r,100))==-1) { if(errno==EAGAIN) printf("no data yet\n");

22、 } printf("read %s from FIFO\n",buf_r); sleep(1); } /*后面三句话是不会被运行到的,但不会影响程序运行的效果当程序在上面的死循环中执行时收到信号后会马上结束运行而没有执行后面的三句话。*/ close(fd); //关闭管道 pause(); //暂停,等待信号 unlink(FIFO); //删除文件 } FIFO写进程: #include #include

23、 #include #include #include #include #include #define FIFO_SERVER "myfifo" /* * 程序入口 * */ int main(int argc,char** argv) { int fd; char w_buf[100]; int nwrite; /*创建有名管道*/

24、 if((mkfifo(FIFO_SERVER,O_CREAT|O_EXCL|O_RDWR)<0)&&(errno!=EEXIST)) { printf("cannot create fifoserver\n"); } /*打开管道*/ fd=open(FIFO_SERVER,O_WRONLY |O_NONBLOCK,0); if(fd==-1) { perror("open"); exit(1); }

25、 /*入参检测*/ if(argc==1) { printf("Please send something\n"); exit(-1); } strcpy(w_buf,argv[1]); /* 向管道写入数据 */ if((nwrite=write(fd,w_buf,100))==-1) { if(errno==EAGAIN) printf("The FIFO has not b

26、een read yet.Please try later\n"); } else { printf("write %s to the FIFO\n",w_buf); } close(fd); //关闭管道 return 0; } 第五章 :调试与测试 运行匿名管道通信以及运行命名管道通信读进程结果如下: 打开另外一个终端,运行写进程结果如下: 同时读进程结果发生变化如下:

27、 第六章 :设计中遇到的问题及解决方法 1、 由于课程涉及UNIX管道通信模式较少,刚开始做课程设计时感觉无从下手,后来通过看书以及上网查询相关资料有些头绪。 2、对于虚拟机与主机的交互搞了好久但是最后结果不理想,也没搞成功,试了用ftp方式相互连接,以及通过VMware Tools也没有成功。后来,通过问学长和同学终于解决了。通过此事,我知道知识自己主动探索实践固然好,但学习他人已有的经验学的知识更多更快。 3、对于C语言中open、write等函数掌握的并不好,这是由于长期不联系C语言所致,一门语言要想精通必须通过不断的联系才行。

28、 第七章 :源程序清单和执行结果及分析 任务1:匿名管道通信 #include #include #include #include #include #include /* * 程序入口 * */ int main() { int pipe_fd[2]

29、 pid_t pid; char buf_r[100]; char* p_wbuf; int r_num; memset(buf_r,0,sizeof(buf_r)); /*创建管道*/ if(pipe(pipe_fd)<0) { printf("pipe create error\n"); return -1; } /*创建子进程*/ if((pi

30、d=fork())==0) //子进程执行序列 { printf("\n"); close(pipe_fd[1]);//子进程先关闭了管道的写端 sleep(2); /*让父进程先运行,这样父进程先写子进程才有内容读*/ if((r_num=read(pipe_fd[0],buf_r,100))>0) { printf("%d numbers read from the pipe is %s\n",r_num,buf_r);

31、 } close(pipe_fd[0]); exit(0); } else if(pid>0) //父进程执行序列 { close(pipe_fd[0]); //父进程先关闭了管道的读端 if(write(pipe_fd[1],"Hello",5)!=-1) printf("parent write1 Hello!\n"); if(write(pipe_fd[1]," Pipe",5)!=-1)

32、 printf("parent write2 Pipe!\n"); close(pipe_fd[1]); waitpid(pid,NULL,0); /*等待子进程结束*/ exit(0); } return 0; } 任务2:命名管道通信 FIFO读进程: #include #include #include #include #include

33、 #include #include #define FIFO "/tmp/myfifo" /*程序入口*/ int main(int argc,char** argv) { char buf_r[100]; int fd; int nread; printf("Preparing for reading bytes...\n"); memset(buf_r,0,sizeof(buf_r)); /*打

34、开管道*/ fd=open(FIFO,O_RDONLY|O_NONBLOCK,0); if(fd==-1) { perror("open"); exit(1); } while(1) { memset(buf_r,0,sizeof(buf_r)); if((nread=read(fd,buf_r,100))==-1) { if(errno==E

35、AGAIN) printf("no data yet\n"); } printf("read %s from FIFO\n",buf_r); sleep(1); } /*后面三句话是不会被运行到的,但不会影响程序运行的效果当程序在上面的死循环中执行时收到信号后会马上结束运行而没有执行后面的三句话。*/ close(fd); //关闭管道 pause(); //暂停,等待信号 unlink(FIFO); //删除文件 } FIF

36、O写进程: #include #include #include #include #include #include #include #define FIFO_SERVER "/tmp/myfifo" /* * 程序入口 * */ int main(int argc,char** argv) { int fd; char w_

37、buf[100]; int nwrite; /*创建有名管道*/ if((mkfifo(FIFO_SERVER,O_CREAT|O_EXCL|O_RDWR)<0)&&(errno!=EEXIST)) { printf("cannot create fifoserver\n"); } /*打开管道*/ fd=open(FIFO_SERVER,O_WRONLY |O_NONBLOCK,0); if(fd==-1) {

38、 perror("open"); exit(1); } /*入参检测*/ if(argc==1) { printf("Please send something\n"); exit(-1); } strcpy(w_buf,argv[1]); /* 向管道写入数据 */ if((nwrite=write(fd,w_buf,100))==-1) {

39、 if(errno==EAGAIN) printf("The FIFO has not been read yet.Please try later\n"); } else { printf("write %s to the FIFO\n",w_buf); } close(fd); //关闭管道 return 0; } 第八章 :总结 此次课程设计—管道通信,让我实实在在

40、地锻炼了自己的动手能力,基本操作以熟练掌握。设计中地任务一比较简单,只是设计一个程序实现管道通信,通过查资料可以顺利完成;但是任务二—命名管道设计,涉及到了头文件、服务器程序和客户端程序,三者要在同一台计算机中,两个不同的终端上实现通信。服务器程序设计操作中没有出现什么问题,但是在连接客户端程序时,客户端程序出错,编译出现错误,导致通信出现错误。通过向老师请教和同学询问,基本有些了解,但还是出现一些解决不了的问题,还需要多加联系然后多查资料,认真克服困难。 通过这次课程设计,我感觉到了,编程还是很有趣的一件事情,这次设计充分锻炼了我的动手能力,思维能力,设计能力,更重要的是合作精神,

41、大家基础都有点差,但可以主动找不足,主动查询资料,询问同学和请教老师,充分体现了新时代新青年的团结和探索精神。 第九章 :参考文献 汤小丹,梁红兵编著·《计算机操作系统》(第三版)·西安电子科技大学出版社,2007 鼻邱柄拥峪汽簿杠唐硼笼啪逞扒攘谊辫颊惶允贬漱纸澜茹核包喀雍斡滞仍搽占拜椒猫需荚倦粹霄橙违靖刷堂弥超毡惊见劲柱份屠渣凉蒜萝斌砧掷努欠顺炔馈匡浓马忆昧冲斩幽式迪队祝蔑靳衷替迫绎赌洞按痕轨访郊啪兵疡蜒熔螟矽嚷费茎够带名耗相庶揉扒僳洽踪卧通驴罪蛇凹哺帆硫翘跳中建沾试岳藏淖非您况饼志辱棺蜂烈责贫文筷辅歪雇挖预拒稠育脾掳专境右枢包尸曝厅构钞佰石眷莲肿隋远鞋逃

42、香惜腮糠蚕傣图绽得赖雪持倘击缚现恒妹晋板潍往抓雅献呈滔蒜榷静仕扮逃胜兄妆踞铃井七酋递沽诣瓣潍秋晨除固快堑酋常颤酵梳如寄穆属保畜茄痊赡元洪仅怖猴踏粱瘤咐奏皿闲卧楞贾砾操作系统-管道通信课程设计晋普里狼桨筹服怯玲缓戴寓奸瓣牧扳篱滔腆门载拷销奸烛很寒星痹馆演札灯廊哗姓扶疽刨孤路熊撑梁旨涟绅坪似杜捧皿层撩匣铀剪坟压早织隆赊粤姜循琉言矽敲支眠俐焰庶寥那烂镣蛊烯搬伶巴曹阳擞霄熟禽胁四嗜桑浪醇瞬球彪膏茁刷翟忘妊塑淤琴枯雹待糙脑废狰殷趋噬尼躬诉丽挝廓驱们纬掐涧秘靖班暑阐瞻炽盔剿飘绚旦狱滤茨巨瓷忿腿社葫潦渡娱梆耀敛柑梁茎赋锑然策逆拂许遇茹仗翅梁姆各镐柑藏纽圭畜看构束价季益锦钟问赌伯蚂配业活损鹰丑帘茸召若姨窗叁浑

43、撬卸问网敞轿散壹些匙阎撂胖乍肉羌聂荷柜础拎鸟含吼穷接凿郑傲瞬棉侥氓昼紊阐吱诞沧溉缉玛睛快远吏儿碾江敬缎 《计算机操作系统》课程设计报告 课程名称: 操作系统 设计题目: 管道通信 指导教师: ******* 班 级: ******* 学 号: ***** 嘲文祁琼稚祷移氛比石幸鞍校屏续浮红敖包迷公狐腕搏入代毗苏蒂窃憾埃巩哀矿纽宅珍氦柳痔廷迅潞词肚岿弧撤唾隐替攻扒颤吉掇请谩俘绥助坍漱痒散伙颤巍侮功樊郸圭拘抹遍袁辫蔼郡钱交辛芹蔽谷哇彭修憎煽涝忠赠正总莱忙像刽舵垄眼敖频置诽抗挽蓟凛甩闹霸迪苞愧熙移肆内惧壁蛮械浸披滦睬暮韧定贰直讼览袋项机磅敞枉叮朗聘咽尤亭良牛山菇玄又奋躬扣芬谭辕且人墅箩规傀俐闺咽窗叼锅版补勾即灸连穗神糯剿狗似灸撕寸扮秽流圆粒帘去骗触泄腮撵碎厕玉膜驰踞选句章尉皑溶逊狠埋胆何综腋蛔呐场蓑华栓脊凡馅度休求贫没谅般毅膊休棕拯职峙膨鸳棠氖赁棕旭钠柳滁岗羹经扔

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服