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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于Linux网络编程课程设计Word文档下载推荐.docx

1、 方飞2014年6月29日一、设计题目及要求1、设计题目 基于Linux的网络通信2、设计要求(1)、设计整个网络系统的流程,并画出流程图。(2)、设计发送数据包的格式。(3)、学习linux环境下多进程或多线程的编程方法。(4)、设计收发的模式、包括发送消息的内容。(5)、设计多个客户端传送文件的方法。 指导教师签名: 2014年 月 日二、指导教师评语 2014 年 月 日三、成绩 理论(60%): 分,作品(40%): 分,总分: 分。 验收盖章 摘要本课程设计实现了在linux下简单的网络聊天室。在Linux下编写并调试服务器端程序和客户端程序,实现了客户、服务器之间的连接和通信。可以

2、在单机上开辟两个窗口分别运行客户、服务器端的程序,或者将两台主机连接分别作为客户和服务器的方式。本设计使用网络套接字socket和多线程在网络中的应用,并基于linux下的vi编辑器。本方案经gcc调试器调试成功,可以在单机网络聊天中使用。关键词:linux;socketvi一、背景1.1 开发背景 在网络无所不在的今天,在Internet上,有ICQ、MSN、Gtalk、OICQ等网络聊天软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发送信息,不管对方是否也同时在线,只要知道他有号码。 Linux

3、 操作系统作为一个开源的操作系统被越来越多的人所应用,它的好处在于操作系统源代码的公开化!只要是基于GNU公约的软件你都可以任意使用并修改它的源代码。但对很多习惯于Windows操作系统的人来说,Linux的操作不够人性化、交互界面不够美观,这给Linux操作系统的普及带来了很大的阻碍。因此制作一个Linux 操作系统下的拥有人性化界面的实时通讯工具,将给那些刚刚接触Linux操作系统的用户带来极大的方便,而且通过设计这样的一个应用程序还能更好的学习网络编程知识和掌握LINUX平台上应用程序设计开发的过程,将大学四年所学知识综合运用,以达到检验学习成果的目的。1.2 linux介绍 Linux

4、是一种针对PC计算机和工作站的操作系统,它具有像Windows和Mac那样的功能齐全的图形用户界面(GUI,Graphical User Interface)。Linus Torvald和其它的遍布世界各地的编程人员共同开发的。作为一种操作系统,它具有与Unix,Mac,Windows和Windows NT同样的功能。 提到Linux我们不能不提GNU和Unix。Richard M.Stallman建立的自由软件联盟出版了两种许可证,GNU通用公共许可证(GNU Gneral Public License,GPL)和GNU函数库通用公共许可证(GNU Library Gneral Public

5、 License,LGPL)。大部分GNU工程的软件和文档是以GNU通用公共许可证发行的,但是有一些库是以GNU函数库通用公共许可证发行的。按照GNU通用公共许可证的规定,Linux的源代码可以自由获取,这满足了我们学习该系统的强烈愿望。GPL充分体现了Stallman的思想:只要用户所做的修改是同等自由的,用户可以自由地使用、拷贝、查询、重用、修改甚至发布这个软件。通过这种方式,GPL保证了Linux(以及同一许可证下的大量其他软件)不仅现在自由可用,而且皮后经过任何修改这后都仍然可以自由使用。 Unix是由ATT贝尔实验室的Ken Thompson和Dennis Ritchie于1969年

6、在一台已经废弃了的PDP-7上开发的;最初它是一个用汇编语言写成的单用户操作系统。后来,他们又在PDP-11上用C语言重新编写(发明C语言的部分目的就在于此),把Unix做成为了一个文本处理系统,这使Unix在贝尔实验室得到广泛的应用。Unix的最初版本免费提供给许多知名的大学的计算机系使用。加州大学伯克利分校的计算机系就是其中的一名,并地Unix进行了修改增加了许多新的特点,这就是主为人知的BSC版本的Unix。与此同时,其它独立开发的Unix版本也开始萌生。Unix不断发展了,各种版本被应用到不同的计算机使用。而Linux最初是专门为基于Intel的个人计算机设计的。(1)Linux的昨天

7、 1991年,一名叫Linus Torvalds的芬兰大学生对Unix各种版本对于80386类的机器的脆弱支持十分不满。他决定要开发出一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和System V 的优点,同进摒弃了它们的缺点。他独立把这个内核开发到0.02版,这个版本已经可以运行gcc、bash和很少的一些应用程序。后来,他又开始了在因特网上寻求广泛的帮助。1994年,Linux已经升级到1.0版本。它的源代码量也呈指数形式增长,实现了基本的TCP/IP功能,此时Linux已经拥有大约10万的用户。(2) Linux的今天 作为一各服务器级的操作系统,Li

8、nux已经成熟了。现在的Linux内核由150多行代码组成,能作为Web服务器平台,也为越来越多的商业用户提供文件和打印服务。它既被当作邮件服务器的一种候选平台,也被当作一种强壮而安全的防火墙。 Linux的企业级特性,比如支持多处理器、支持大型文件系统、日志文件系统以及密集型计算和高可用性集群技术,也逐步成熟。 桌面上的Linux也在继续完善。KDE桌面提供的图形用户界面在易用性和可配置方面都能和微软的Windows相媲美。(3) Linux的明天 Linux最强大的生命力在于其公开的开发过程。每个人都有可以自由获取内核源程序,每个人都有要不得以运载源程序加以修改,而后他人也可以自由获取你修

9、改后的源程序。Linux这种独特的自由流畅的开发模型已被命名为bazaar(集市模型)。Bazaar开发模型通过重视实验,征集并充分利用早期的反馈,对巨大数量的脑力资源进行平衡配置,可以开发出更优秀的软件。本联盟就是想通过bazaar开发模型,在网上召集一些Linux的爱好者,开发出更优秀的操作系统或软件。二、实验目的2.1掌握ARM Linux交叉编译平台的搭建2.2掌握Makefile文件的编写2.3掌握编译工具arm-linux-gcc2.4熟悉程序下载过程三、实验步骤3.1交叉编译平台的安装(1) 考虑到现今Linux平台发展,交叉编译平台编统一为arm-linux-gcc-4.4.3

10、(2) 在windows系统下,建立一个共享目录,如:e:/linux_file(3) 将光盘目录linux中的arm-linux-gcc-4.4.3.tar.gz 复制到e:(4) 注意在进行虚拟机设置时使共享目录的有效,并添加共享目录e:(5) 进入linux操作系统,root目录下建立一个Armcode的子目录,将共享目录下的文件arm-linux-gcc-4.4.3.tar.gz复制到该目录(6) 然后进入到该目录,执行解压命令:#cd /root/Armcode;#tar xvzf arm-linux-gcc-4.4.3.tgz C /; 注意:C 后面有个空格,并且C 是大写的,它

11、是英文单词“Change”的第一个字母,在此是改变目录的意思。(7) 执行该命令,将把arm-linux-gcc 安装到/opt/FriendlyARM/toolschain /4.4.3/bin 目录。(8) 把编译器路径加入系统环境变量,运行命令:#gedit /root/.bashrc编辑/root/.bashrc 文件,在最后一行添加:export PATH=$PATH: /opt/FriendlyARM/toolschain/4.4.3/bin(9) 重新登录系统(不必重启机器,开始-logout 即可),使以上设置生效,在命令行输入:arm-linux-gcc v,会出现如下信息,

12、这说明交叉编译环境已经成功安装。四、设计原理4.1设计原理流程网络编程,一定离不开套接口;那什么是套接口呢?在Linux下,所有的I/O操作都是通过读写文件描述符而产生的,文件描述符是一个和打开的文件相关联的整数,这个文件并不只包括真正存储在磁盘上的文件,还包括一个网络连接、一个命名管道、一个终端等,而套接口就是系统进程和文件描述符通信的一种方法。服务器端:(1) 创建一个socket,用函数socket();(2) 绑定IP地址、端口等信息岛socket上,用函数bind();(3) 设置应许的最大连接数,用函数listen();(4) 接收客户端上来的链接,用函数accept();(5)

13、接收数据,用recv();(6) 关闭网络链接。客户端:(2) 设置要连接的对方的IP地址和端口等属性;(3) 连接服务器,用函数connect();(4) 发送数据,用函数send();(5) 关闭网络连接。4.2程序流程分析(1)创建Socket不管是客户端还是服务器端,都需要先创建一个socket。调用方式为:int socket(int domain,int type,int protocol)功能:创建一个新的套接字。参数:domain: 指明所使用的协议族 type: 指明套接字的类型 protocol: 通常赋值“0”返回值:成功时,返回一个整形socket描述符;失败时,返回-

14、1。设计过程具体调用为:sock_fd = socket(AF_INET,SOCK_STREAM,0);(2)服务器端使用的函数1)int bind(int sockfd, struct sockaddr *my_addr, int addrlen)sockfd:是由socket调用返回的文件描述符。Addrlen:是sockaddr结构的长度。my_addr:是一个指向sockaddr的指针。由于我们主要使用Internet 所以sin_family 一般为AF_INET,sin_addr设置为INADDR_ANY表示可以和任何的主机通信,sin_port是要监听的端口号,sin_zero8是用来填充的。bind 将本地的端口同socket 返回的文件描述符捆绑在一起,成功是返回0。2)int listen(int sockfd,int backlog)是bind后的文件描述符。backlog:设置请求排队的最大长度,当有多个客户端程序和服务端相连时,使用这个表示可以介绍的排队长度。listen函数将bind的文件描述符变为监听套接字,返回的情况和bind一样。3)int accept(int sockfd, struct sockaddr *addr,int *addrlen)是listen后的文件描述符。addr,addrlen:是用来给客户端的程序填写的,服务器

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

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