基于linux平台的聊天软件的设计与研究毕业设计论文(编辑修改稿)内容摘要:
南京工程学院毕业设计说明书(论文) 第 4页 为什么选择 Linux。 质量和可依赖性是衡量代码优劣的重要标准。 尽管在 “ quality code”众说纷纭,但是大多数编程人员所期望的都有如下几点: (1)模块化:每一个功能都写成一个模块,这样不仅易于读写,更加方便以后的移植; (2)可读性:一段代码应该能让别人看的下去,这里包括变量的定义,尽量取有意义的变量名,避免 int i, j 这样的定义;一段杂乱的让人看一眼就不想往下看的代码一定是不好的,不管功能有多牛。 ; (3)可扩展性:在增加新的功能时,不要对原来的代码进行大篇幅的修改,而是只要添加对应的功能即可; (4)可配置性:可以选择对应的功能特色进行编译,不要的就不编译,从而生成的程序适合自己的使用。 但是配置的过程应该尽量简单人性化。 ,是 Inter最基本的协议、是 Inter 国际互联网络的基础。 Socket 通信所采用的协议分为面向连接 (TCP)和非面向连接 (UDP)的两种 ,但由于 UDP 效率较高但是传输不可靠,不能胜任复杂的网络环境,不得不通过超时和重传等手段来实现较高的可靠性;然而 TCP 在数据传输方面提供了完全的可靠性,因此选用 TCP/IP协议更加可靠些。 Linux kernel 源码及所有的开发和编译工具是很方便从网络上获取的。 Linux 中最重要的部分 Linux kernel 分布在 GPL 下。 其他的代码也分布在相同的证书下,如 BSD 等。 构成 Linux 的大部分代码都是没有限制的。 当源码的访问受限时,开放自由软件组织就会寻找新版本的源码包代替原有的代码。 正是由于这一特性, Linux 受到很多电话制造商的青睐,他们将其移植到自己产品中,稍作修改优化使其适合自己的产品。 Linux 支持不同种类的硬件平台和设备,尽管有些驱动暂不支持 Linux 系统,但是对此有很大的期待。 因为很多驱动都由 Linuxshequ 维护着,你可以毫无顾忌的使用这些驱动。 各种硬件协 同工作,使你的工作更加顺畅。 你希望在你自己电脑上编写的程序能够在 另一架构的操作系统上正常南京工程学院毕业设计说明书(论文) 第 5页 运行,甚至有不同的设备驱动运行在不同的系统架构上。 Linux提供了广泛的通信协议和标准的软件支持。 这使得整合 Frameworks 及相关软件到 Linux 上变得更加容易。 同时, Linux是 Ulike 的,可以方便的将 UNIX程序移植到 Linux 上。 事实上,许多应用被绑定在一些商用 Unixes 中,继而被移植到 Linux 中。 论文的主要工作 第一章:绪论 ,大体介绍 Linux 操作系统发展、应用的现状以及我们选择Linux 系统的原因; 第二章:介绍 Linux 软件开发中使用的编译工具和调试工具及其简单的使用方法; 第三章: 介绍设计是怎样实现的以及在实现的过程中用到了哪些关键技术并对这些关键技术作简要分析; 第四章: 介绍设计相关的主要代码的实现过程,依次对服务器和客户端主要流程进行介绍,必要的功能展示; 第五章: 设计总结与展望 南京工程学院毕业设计说明书(论文) 第 6页 第二章 Linux 编程常用工具 嵌入式 C 语言 C 语言 最初是 由贝尔实验室 的职员 Thompson 和 Ritchie 于 1971 年共同开发。 其应用场景很多,如: 操作系统 :Linux; 微控制器 :汽车和航天飞机; 嵌入式处理器:电话和便携式电子设备等; DSP Processer:数字音频图像处理和 TV 系统等。 程序的生成过程如图 所示 : 图 程序的生成过程 C 语言能够在编程开发领域受到如此高的青睐, 主要有以下几个 方面的 原南京工程学院毕业设计说明书(论文) 第 7页 因:。 因而在跨平台开发时非常方便, C 语言的这一特性吸引着广大编程爱好者;。 可以指定编译选项从而省去中间过程,以进一步提升程序的执行效率。 由于各个平台的差异,当一个程序到不同平台上,只需要从新编译一下源代码即可使用;。 C 语言发展较快。 在上世纪 80 年代末期由 American National Institude 发布的 ANSI C 的 C 语言标准奠定了其发展的基石。 GCC 工具链 GNU/Linux 操作 系统上往往 使用 gcc 作为编译工具。 其不是一个单独的程序,而是多个程序的组合,因而通常称为 toolchain(工具链 )。 GCC 的 全称 是 GNU Complier Collection,是由 GNU Project 提供的支持多 种编程语言的编译器。 GCC 是 GNU toolchain 中的重要组成部分, GCC 作为一个工具和实例,在自由软件的成长过程中扮演着重要的作用。 同年 12 月, GCC扩展到能够编译 C++,不久之后能够支持的语言更多,如 ObjectiveC、ObjectiveC++、 Fortran、 Java 和 Ada 等等。 GCC 被移植到多种架构的处理器,并作为一种专业软件开发工具配置于系统中。 GCC 同时也集成于大多数嵌入式平台,包括 Symbian, AMCC等。 作为 GNU操作系统官方 指定 编译器, GCC被其他 Ulike操作系统吸收采用,包括 Linux和 BSD 家族。 程序的编译过程 如图 所示 : 南京工程学院毕业设计说明书(论文) 第 8页 头文件汇编源文件c 源文件C ++ 源文件预处理器预处理器预处理器预处理后的C 文件预处理后的C ++ 文件C ++ 编译器汇编文件C 编译器汇编器汇编器汇编文件汇编文件汇编器目标文件目标文件目标文件链接器共享库可执行程序*. h*. s*. c*. c p p*. cc*. icppgcccppcpp *. ii *. s*. s*. s*. o*. o*. oa p p*. sog ++asasasld 图 源码到可执行文件的过程 GCC的用法 对于 GCC 的编译选项只要掌握一些常用的选项就可以,其他多大 100多种选项有些工程师可能一辈子也不会用到。 gcc 基本用法: gcc [Wall] [O1..3] [g] [o name] file... Wall: 打开所有警告项 O: 设置优化级别, O0 表示关闭优化功能 g: 将调试信息编译到目标文件中 o name: 指定输出文件的名称是 name file: 被编译 (链接 )的文件 调试和剖析选项 gcc – g:以本机格式 (stabs,COFF,XCOFF,or DWARF 2)生成调试信息供 gdb使用。 在大多数系统上, “ g”产生的调试信息只能供 GDB 使用,这种调试信息在 gdb 中能很好的工作,而在其他调试器上不是读取不了就是调试器异常崩南京工程学院毕业设计说明书(论文) 第 9页 溃。 如果你想指定调试信息的格式,可通过如下方式: gstabs+、 gstabs、 gxcoff+、 gxcoff、 gvms gcc 允许同时使用 ‘ g’ 、 ‘ – o’ ,这种使用方法将会产生令你意想不到的效果:你定义的一些变量可能不存在、程序会跑飞掉、一些语句不会被执行。 不管是否提供可能的优化输出,但可以肯定的是,这将会产生一些 bug。 但是这种方法 使得你能够在和最终产品尽可能相同的情况下对代码进行调试。 应当注意 , 如果你同时使用这两个编译选项 ,必须清楚所写的某些 有关代码已经在优化时被 GCC 作了 些改变。 GDB 调试器 GDB(GNU Debuger),是 GNU 操作系统的标注调试器;。 GDB作为 GNU 系统的一部分于 1986年由 Richard Stallman 编写,是 GPL下的自由软件。 使用者可以监视和修改程序的内部变量,甚至可以独立地调用程式正常行为的函数。 GDB 能对多种不同处理器架构上运行出错的应用软件排错 ,这些处理器架构包括: Alpha、 ARM、 AVR、 H8/300、 Altera Nios/Nios II、 System/370、 System 390、 X86 及其 64 位扩展。 GDB 明显的限制是在他的运用方面,没有较亲和的图形界面,预设只有命令行界面可用。 Gdb 是为了让你能够 “ 看到 ” 另一程序执行时具体做了什么或者是另一程序崩溃时发生了什么 GDB 可以做四件事情帮助你找到程序中的 bug: (1) 启动你的程序,指定任何可能影响其行为的变量或函数等; (2) 使你的程序暂停 (设置断点 )或者指定特定的状态; (3) 当你的程序终止时,检测发生了什么; (4) 改变你程序中的事情,这样你就可以尝试纠正一个 bug 的影响以便继续往下找另一个 bug。 GDB用法 gdb 的基本命令: gdb 提供 的 各种各样的命令有着不同的功能。 从简单到复杂, 以下列出了南京工程学院毕业设计说明书(论文) 第 10页 一些常用的 gdb 调试命令: (1)file filename:在 gdb 模式中无需退出即可通过 file 命令装在你要调试的文件 (gdb) file david Reading symbols from /home/david/Graduation_projec t/david...(no debugging symbols found)...done. (2)kill:通过 kill 命令可以终止当前正在调试的程序 (gdb) kill Kill the program being debugged? (y or n) y 还有一些常用的如: n(next)、 s(step)、 run 和 q(quit)将在下节例程中详细说明。 用 gdb 调试 GCC 程序 在终端输入 gdb 回车后,会出现如下一长串内容 : david@zdz:Graduation_project$ gdb GNU gdb (Ubuntu/Linaro ) Copyright (C) 20xx Free Software Foundation, Inc. Lic ense GPLv3+: GNU GPL version 3 or later enses/ This is free software: you are free to c hange and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show c opying and show w arranty for details. This GDB w as c onfigured as x86_64 linuxgnu. For bug reporting instructions, please see: (gdb) Gdb 的一些使用命令如果记不住的话可以查看官方手册,没必要硬记,准其自然,每次不会的时候翻翻手册,时间长了自然就记住了 下面只介绍一些常用的几个命令: 比方说,现在有一个通过 gcc 编译好的可执行文件 david,在程序中我定南京工程学院毕业设计说明书(论文) 第 11页 义了两个变量 x, y 赋初值为 5, 6 终端执行 david@zdz:Graduation_project$ ./david The result is: x + y is 11 x * y is 30 x / y is 0 那么通过 gdb 来看看发生了什么: david@zdz:Graduation_project$ gdb david (gdb) 我们现在告诉 gdb 使用窄于通常的显示宽度: (gdb) set width 70 下面我要知到 david 这个程序怎样工作的,通过阅读源程序我大体知道工作流程,所以我可以设置断点: (gdb) break count Breakpoint 1 at 0x400579 接下来运行程序: (gdb) run Starting program: /home/david/Graduation_project/david The result is: Breakpoint 1, 0x0000000000400579 in count () 可以发现程序停在 count()函数这个地方, The result is :这句话显示count()函数之前都已运行完毕。 现在我可以通过 n(next)让程序执行到下一行 (gdb) n Single stepping until exit from function count, which has no line number information. x + y。基于linux平台的聊天软件的设计与研究毕业设计论文(编辑修改稿)
相关推荐
抑制器等 [12]。 电子科技大学硕士学位论文 4 无源集成基板 /封装:如蓝牙模块基板、手机前端模块基板、集中参数环行器基板等。 功能模块:如蓝牙模块、手机前端模块、天线开关 模块、功放模块等 [1314]。 我们将对这些 LTCC 产品的发展状况加以介绍: 高精度片式元件 片式元件的尺寸已由 1206 和 0805 为主,发展为 0603 和 0402,并进而向 0201和
mmTAdHdd 8 75 2 7 0 2 6 0 7851][323 211 取 mmd 初步齿宽 b mmdb d 取mmb 75 2)校核计算 圆周速度 smndv/1 3 1 0 0 060141 8 71 0 0 060 11 smv / 精度等级 由查表 得 选取八级精度 齿数 z 与模数 m 初取齿数
DATATMP = (others = 39。 039。 )。 ELSE IF KEY(3)39。 EVENT AND KEY(3) = 39。 139。 THEN 设置分的十位 IF DATATMP(15 DOWNTO 12) = 0101 THEN 5 自动跳转到 0 DATATMP(15 DOWNTO 12) = 0000。 ELSE DATATMP(15 DOWNTO 12) =
际硬件仪器相似的操作面板。 LabVIEW 是一个工程软件包。 1986 年 , 美国国家仪器公司( National Instruments)开发研制出它是基于苹果公司的 Macintosh 微机的最早版本。 之后 , 该公司不断推出各种操作系统的 LabVIEW 版本 [2]。 它们的出现开创了虚拟仪器的仪器研究新方法。 167。 选择 LabVIEW 的原因 选择 LabVIEW
DC转换电路,无需外加负压(12)无需片选信号,简化软件设计(13)工作温度:0℃~+55℃,存储温度:20℃~+60℃。 从液晶显示器的结构来看,无论是笔记本电脑还是桌面系统,采用的LCD显示屏都是由不同部分组成的分层结构。 LCD由两块玻璃板构成,厚约1mm,其间由包含有液晶(LC)材料的5μm均匀间隔隔开。 因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管
技术方面,德国 SIOS 公司开发了一种纳米定位与纳米测量系统 NMM( Nano Positioning andNano Measuring Machine)。 我国在坐标测量机研究方面,发展比较迅速。 坐标测量机的发展具有很好的前景和巨大的市场潜力 [46]。 目前,我国的坐标测量机已经形成规模并能批量生产的企业只有几家。 这些厂商都以生产型坐标测量机为主,其产品测量不确定度约为