基于linux的多进程网络通信

基于linux的多进程网络通信

ID:12405094

大小:817.70 KB

页数:30页

时间:2018-07-16

基于linux的多进程网络通信_第1页
基于linux的多进程网络通信_第2页
基于linux的多进程网络通信_第3页
基于linux的多进程网络通信_第4页
基于linux的多进程网络通信_第5页
资源描述:

《基于linux的多进程网络通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、信息工程学院嵌入式系统设计课程设计报告题目:基于linux系统移植的多进程通信学号:------------学生姓名:--------专业名称:计算机科学与技术班级:-------目录一、课程研究意义及现状31.1课题研究意义31.2课题研究现状3二、系统总体方案设计及功能模块介绍42.1系统概述及总体方案设计42.2功能模块介绍4三、系统软件设计与实现53.1主程序设计与实现53.3文件上传程序设计与实现83.4文件下载程序设计与实现93.5多进程简易聊天设计与实现10四、系统测试124.1系统软件测试124

2、.1.1文件上传测试124.1.2文件下载测试134.1.3多进程简易聊天144.2系统硬件测试14五、总结和展望16六、参考文献17七、源代码18一、课程研究意义及现状1.1课题研究意义Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统1.2课题研究现状在网络无所不在

3、的今天,在Internet上,有Facebook、微信、Twitter、QQ等网络聊天软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发送信息,不管对方是否也同时在线,只要知道他有号码。Linux操作系统作为一个开源的操作系统被越来越多的人所应用,它的好处在于操作系统源代码的公开化!只要是基于GNU公约的软件你都可以任意使用并修改它的源代码。但对很多习惯于Windows操作系统的人来说,Linux的操作不够人性化、交互

4、界面不够美观,这给Linux操作系统的普及带来了很大的阻碍。因此制作一个Linux操作系统下的简易聊天程序,通过设计这样的一个应用程序还能更好的学习网络编程知识和掌握Linux平台上应用程序设计开发的过程,将大学三年所学知识综合运用,以达到检验学习成果的目的。二、系统总体方案设计及功能模块介绍2.1系统概述及总体方案设计这次程序设计的目标是在以Linux为内核的操作系统下,实现多线程文件传输系统功能模块。系统模块分为服务器和客户端两部分,客户端实现对文件的上传、下载和查看服务器默认路径下的文件列表;服务器可以对

5、文件进行管理操作,包括创建、删除和重命名等。多线程文件传输是一种一对多或者多对多的关系,一般是一个服务器对应着多个客户端。客户端通过socket连接服务器,服务器要为客户端创建一个单独进程(线程)监听每个客户端的请求。创建好连接之后文件就可以通过流的形式传输。linux内核中为我们提供了两种不同形式的读写流,包括read()、write()和send()、recv()。客户机对文件的查看指令也是通过流传递给服务器,服务器根据请求类型返回不同相应流。根据socket原理和特点绘画出链接流程图,将客户机与服务器的相

6、互通信划分为不同的模块,每个模块负责独立的功能项。服务器输入指令管理目录下的文件,touch是创建文件命令,rm是删除文件命令;客户端向服务器发送上传、下载和查看请求,从而得到不同的相应,包括将文件下载到当前路径下,从当前路径下上传文件给服务器,列出服务器的文件列表。图1-系统功能图2.2功能模块介绍文件上传功能:支持从客户端到服务器的文件传输。文件下载功能:支持从服务器到客户端的文件传输。会话功能:支持服务器到客户端一对多会话通讯。三、系统软件设计与实现3.1主程序设计与实现图2-主程序原理图服务器端部分代码

7、:structsockaddr_inservAddr;bzero(&servAddr,sizeof(servAddr));servAddr.sin_family=PF_INET;servAddr.sin_port=htons(8888);servAddr.sin_addr.s_addr=inet_addr("192.168.100.200");//socketintservFd=socket(PF_INET,SOCK_STREAM,0);if(-1==servFd){perror("socketerror!")

8、;return-1;}printf("socketok!");//bindintret=bind(servFd,(structsockaddr*)&servAddr,sizeof(servAddr));if(-1==ret){perror("binderror!");close(servFd);return-1;}printf("bindok!");//listenret=li

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。