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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux课程设计Word文档格式.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Linux课程设计Word文档格式.docx

1、本课程设计实验主要围绕Linux平台上主流的基础技术展开,这些技术包括:Linux的进程、线程通信和同步技术; socket网络通信技术等,这些技术可以集中体现并应用在并发程序设计中。通过并发程序的设计与开发,培养学生底层软件开发的能力,并为将来从事UNIX/Linux平台开发、嵌入式开发等相对高端的软件开发工作打下基础。2、实验项目的功能及模块划分本实验是一个Linux下的并发程序。基本功能有通过Socket,一个进程接收并传送用户操作命令以及相关操作数据等;另一进程收到该命令后,先分析该命令,然后真真完成该命令的具体操作。在此基础上,还具有接收用户输入方式为图形化界面;容许一次传送多个命令

2、(主要是传送的数据格式支持多个命令)等功能。3、设计与实现31 系统结构 311 系统结构图32 发送进程321 基本功能主菜单、通过socket传送命令和操作数据给另一个进程,命令包括:添加学生信息、删除学生信息、修改学生信息、显示学生信息。一次允许传送多个命令。33接收进程的实现 331基本功能 进程收到该命令后,先分析该命令,然后完成该命令的具体操作。4数据库访问或文件操作 41文件操作学生基本信息存储在文件stu.info中,该文件相关的结构可以按照以下方式定义:struct stu_infochar stu_num12;char name10;char zhuanye10;short

3、 int sex;char mobile_phone12;对文件的操作主要是通过系统调用来实现的,其中包括打开和创建文件(open、creat)、读写文件(write、read)和文件定位(lseek)。对文件的删除使用的系统调用system调用/bin/sh 执行rm命令实现,即system(“rm -f stu.info”);5 通信模块的实现 51 通信方式的选择 进程通信方式选择的socket,因为进行通信的进程不可能局限于单机,更多的时候是网络中不同主机进程间的通信,通信的数据结构也可以根据需要自行进行定义。进程通信多数情况下是多进程,在服务器通过实现并发服务器能够很好的让服务器和多

4、个客户端进程间进行通信。6、测试与调试(1)客户端与服务器建立连接客户端的主菜单:服务器(打印连接信息)(2)添加学生信息客户端:服务器:(3)修改学生信息(4)删除学生信息(5)显示学生信息(6)并发处理多客户一个添加信息,一个查看信息7、总结附录:程序代码源代码由三个文件组成:net.h、server.c和client.c/net.h#include string.hstdlib.hsys/socket.harpa/inet.hnetinet/in.herrno.hunistd.hfcntl.h#define PORT 3000 char stu_num12; char name10; c

5、har zhuanye10; short int sex; char mobile_phone12;struct msg_buffer char cmd; char cmd_param12; struct stu_info stu;/*/client.c#include net.hstruct msg_buffer msg20;static int msg_count = 0;char menu() system(clear); printf(-n* (a)Add Student Informationn*n* (m)Modify Student Informationn*n* (d)Dele

6、te Student Informationn*n* (s)Show Student Informationn*n* (e)The End Of Command Inputn*nInput /a /m /d /s /e : scanf(%c, &msgmsg_count.cmd); return msgmsg_count.cmd;void addStuInfo()nnInput the information you want to addnNum:%s, msgmsg_count.stu.stu_num);Name:, msgmsg_count.stu.name);Sex(1/0):%dms

7、gmsg_count.stu.sex);zhuanye:, msgmsg_count.stu.zhuanye);Mobile Phone:, msgmsg_count.stu.mobile_phone);void modifyStuInfo()nnInput the student num of modifyn, msgmsg_count.cmd_param);Input the information you want to modifynvoid deleteStuInfo()nnInput the student num of deletenvoid showStuInfo()nnSho

8、w Command is input, press Enter.n getchar();int endOfInput()nCommand Input is finish.Press Entern return 1;int main(int argc, char *argv) int flag, sockfd; struct sockaddr_in client_addr; sockfd = socket(AF_INET, SOCK_STREAM, 0); bzero(&client_addr, sizeof(client_addr); client_addr.sin_family = AF_I

9、NET; client_addr.sin_port = htons(PORT); inet_aton(argv1, &client_addr.sin_addr); bind(sockfd, (struct sockaddr *)& if(connect(sockfd, (struct sockaddr *)&client_addr, sizeof(struct sockaddr) = -1) fprintf(stderr, connect error %sn, strerror(errno); exit(0); while(1) switch(menu() case a: addStuInfo();break;m modifyStuInfo();d deleteStuInfo();s showStuInfo();e flag=endOfInput(); default:Input the choicen msg_count+; if(flag = 1) if(write(sockfd, &msg_count, sizeof(int) = -1)write error %sn if(write(sockfd, msg, sizeof(struct msg_buffer)*msg_count) = -1), strerro

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

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