毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc

上传人:仙人指路1688 文档编号:2392935 上传时间:2023-02-17 格式:DOC 页数:46 大小:630KB
返回 下载 相关 举报
毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc_第1页
第1页 / 共46页
毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc_第2页
第2页 / 共46页
毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc_第3页
第3页 / 共46页
毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc_第4页
第4页 / 共46页
毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于ucLinux的电子邮件客户端设计与实现.doc(46页珍藏版)》请在三一办公上搜索。

1、 University of South China 毕业设计(论文)题 目基于ucLinux的电子邮件客户端设计与实现学院名称 计算机科学与技术 指导教师 职 称 讲师 班 级 037 学 号 学生姓名 2007年6月1日目 录摘要:IAbstract :II引言1第一章 绪论21.1电子邮件简介及其研究意义21.1.1.电子邮件21.1.2.什么是POP3协议31.2.嵌入式uclinux操作系统31.3.嵌入式开发4第二章 嵌入式开发软硬件平台62.1.硬件开发平台62.1.1.S3C44B0X 的片上资源62.1.2.S3C44B0X的特性72.1.3.S3C44B0X开发板内部结构介

2、绍72.2.软件平台介绍82.2.1.软件系统开发流程图介绍82.2.2.ucLinux软件系统构建9第三章 POP协议的分析123.1.POP3的特点、客户端的工作流程123.2.POP3命令摘要及命令详解12第四章 基于uclinux的pop3协议客户端实现184.1 主要工作和步骤184.1.1 安装uClinux移植包184.1.2 安装交叉编译器184.1.3 .配置内核194.1.4 .编译uClinux224.2. SOCKET网络编程244.2.1 Socket概述244.2.2 Socket工作进程及函数介绍244.3.Pop3协议客户端工作流程304.4 POP3协议客户端

3、程序的实现304.4.1 POP3协议客户端程序实现的主要代码编写及注解314.4.2编写Makefile文件384.4.3修改user/Makefile文件。384.4.4修改config/config.in文件384.4.5 配置编译39第五章 总结40参考文献41谢辞42摘要:随着Internet的普及,传统信件的Internet版本电子邮件已经逐渐步入了我们的生活与工作。电子邮件和普通的邮件一样电子邮件也需要“邮局” 邮件服务器。在平日我们收取普通邮件的时候,我们常常会用一把带锁的箱子作为我们自己的信箱,而我们平日使用的电子邮件也有它们的暂时存放地POP服务器。与传统邮件进行类比,我们

4、使用账号和口令打开POP服务器就好比是我们在日常生活中打开自己平日的信箱一样方便简洁,所以POP3协议客户端是实现与服务器进行连接以及实现邮件接收的窗口。本毕业设计采用三星公司推出的S3C44B0做为CPU,通过移植ucLinux设计与实现了POP3协议的客户端。关键词: S3C44B0; POP3协议; 移植;客户端Abstract :With the widespread of Internet, traditional Internet edition letter- e-mail enters into our life and work. Email needs a “post of

5、fice”, which we call mail server, as the common letters. Usually, when we receive letters ,we often get an box with lock as our post box. similarily, our email also has its temporary settlement-POP server. Compared with traditional letters ,we need an account and password to open POP server ,which i

6、s as convenient as we open daily letters. So client portal of pop3 protocol is the bridge between the client and the server and the window of receiving mails.This thesis adopts the chip S3C44B0 of samsung as CPU to design and realize the user portal of pop3 protocol through transplanting ucLinux. Ke

7、yword: S3C44B0, pop protocol , transplante, user portal引言在日常的生活中,书信往来是我们日常生活中不可缺少的一个环节。随着Internet的普及,传统信件的Internet版本电子邮件已经逐渐步入了我们的生活与工作。在平日我们收取普通邮件的时候,我们常常会用一把带锁的箱子作为我们自己的信箱,而我们平日使用的电子邮件也有它们的暂时存放地POP服务器。与传统邮件进行类比,我们使用账号和口令打开POP服务器就好比是我们在日常生活中打开自己平日的信箱一样。 POP协议允许工作站动态访问服务器上的邮件,目前已发展到第三版,称为 POP3,全称是 P

8、ost Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。现在常用的是第三版 ,所以简称为 POP3。POP3仍采用Client/Server工作模式,Client被称为客户端,一般我们日常使用电脑都是作为客户端,而Server(服务器)则是网管人员进行管理的。举个形象的例子,Server(服务器)是许多小信箱的集合,就像我们所居住楼房的信箱结构,而客户端就好比是一个人拿着钥匙去信箱开锁取信一样的道理。本毕业设计的目的是基于uclinux下的POP协议客户端的实现, uclinux操作系统源码用c语言开发.下面是总个的POP3协议客户端介绍和实现过程。第

9、一章 绪论1.1电子邮件简介及其研究意义1.1.1. 电子邮件 电子邮件是Internet应用最广的服务:通过网络的电子邮件系统,您可以用非常低廉的价格(不管发送到哪里,都只需负担电话费和网费即可),以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联络系,这些电子邮件可以是文字、图象、声音等各种方式。同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。这是任何传统的方式也无法相比的。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。 每一个申请Inte

10、rnet帐号的用户都会有一个电子邮件地址。它是一个很类似于用户家门牌号码的邮箱地址,或者更准确地说,相当于你在邮局租用了一个信箱。因为传统的信件是由邮递员送到你的家门口,而电子邮件则需要自己去查看信箱,只是您不用跨出家门一步。 电子邮件地址的典型格式是abcxyz,这里之前是您自己选择代表您的字符组合或代码,之后是为您提供电子邮件服务的服务商名称,如user。同文件传输应用一样电子邮件(Electronic Mai1 简称E-mail)也是最早出现在ARPANET 中的应用是传统邮件的电子化它的诱人之处在于传递迅速在ARPANET上几秒钟就可以完成美国东西海岸间的邮件传递风雨无阻比人工邮件快了

11、许多,另外电子邮件还可以进行一对多的邮件传递同一邮件可以一次发送给许多人,最重要的是电子邮件是整个网络系统中直接面向人与人之间信息交流的系统它的数据发送方和接收方都是人所以极大地满足了大量存在的人与人通信的需求。因此如何构建高效稳定安全易用可扩展功能丰富的电子邮件系统是众多电信运营商ISP ICP 共同面临的问题。1.1.2. 什么是POP3协议POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户通过客户端和服务器进行连接然后从服

12、务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的,Pop3客户端通过向服务器发送命令请求服务。POP适用于C/S结构的脱机模型。脱机模型即不能在线操作,不像IMAP4(netscape支持IMAP4)当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有将被下载的邮件都将被程序下载到客户机,下载后,电子邮件客户机就可以删除或修改任意邮件,而无需与电子邮件服务器进一步交互。POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示。 服务器响应是由一

13、个单独的命令行组成,或多个命令行组成,响应第一行以ASCII文本+OK或-ERR指出相应的操作状态是成功还是失败在POP3协议中有三种状态,认可状态,处理状态,和更新状态。当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后最后重返认可状态。1.2. 嵌入式uclinux操作系统操作系统是嵌入式设备软件的核心部分。由于它的存在,使得设备的功能有很大的扩展空间和伸缩性能。Linux是一种很受欢迎的类UNIX操作系统。uClinux这个英文单词中u表示Micro,小的意思,C表示Control,

14、控制的意思所以uClinux就是Micro-Control-Linux,字面上的理解就是针对微控制领域而设计的Linux系统。是一个源码开放的操作系统,面向没有MMU(Memory Management Unit)的硬件平台。它是linux的一个变种,主要的区别在于两者的内存管理机制和进程调度管理机制,同时为了适应嵌入式应用的需求,它的采用了romfs文件系统,并对linux上的c语言库glibc做了简化。运行uClinux的硬件平台主要包括如下几个部分:cpu(ARMv4指令集兼容)、uart、memory controller、定时器、flash存储器、sdram存储器、中断控制器和DMA

15、。编译环境和编译工具:uclinux操作系统源码绝大部分是用c语言开发的,有一些与硬件直接相关的代码则用特定于某一CPU体系结构的汇编来实现。这些源码只能用GNU的gcc编译工具来进行编译、链接。GNU gcc可以运行于Linux/Unix操作系统上。如果要在Windows平台上运行gcc,则必须安装Cygwin。Cygwin可以在Windows中安装一个linux的运行环境,这样就可以在windows下运行原本只能在linux下运行的程序。为了在PC上编译得到运行于目标CPU上的操作系统内核,还必须安装一个合适的交叉编译器。Gcc 提供了现成的针对MIPS、ARM、M68K、Sharc、Po

16、werPC的交叉编译器。如果没有现成的交叉编译器,则需要自行设计。GNU网站提供了一些如何开发新的交叉编译器的文章。开发一个新的编译器,一般需要如下几个步骤:编写机器描述脚本。采用gcc的RTL(Register Tansfer Language)语言描述针对某一CPU体系结构的机器指令与寻址方式、CPU浮点处理方式、endianess、c语言中各种数据类型的位宽、寄存器的个数和使用规则、堆栈和函数调用规则等体系结构的细节。设计代码生成器。Gcc在对c语言源文件进行了词法和语法分析后,将产生一种中间格式文件(intermediate representation)。为了把这种中间格式文件转化为

17、针对具体CPU体系结构的机器码,需要自行设计一个代码生成器,设计汇编器,设计链接器。1.3. 嵌入式开发嵌入式系统是以应用为中心,软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”。简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。具有软件代码小,高度自动化,响应速度快等特点。从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有Vxwork, pSOS, Nucleus和Windows CE。但这些高端嵌

18、入式系统高昂的价格使许多低端产品的小公司望而却步:而且,源代码封闭性也导致了诸如对设备的支持,应用软件的移植等一系列的问题。对上层应用开发者而言,嵌入式系统需要的是一套高度简练、界面友善、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统。嵌入式Linux,操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量。现在嵌入式操作系统已经发展到第四阶段-是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备

19、与Internet的结合将代表着嵌入式系统技术的真正未来。通常,嵌入式系统中的系统程序(包括操作系统)和应用程序是浑然一体的,这些程序被编译连接成一个可执行的二进制映像文件(image),这个二进制映像文件被固化在系统中,在系统复位后自动执行。嵌入式系统的开发系统和实际运行的系统并不相同,需要交叉编译系统和适当的调试系统。第二章 嵌入式开发软硬件平台2.1.硬件开发平台基于ARM7处理器和uclinux操作系统的嵌入式开发平台包括硬件开发平台和软件开发平台两个部分。硬件平台完成后,就要向硬件平台上移植操作系统才能构成整个开发系统平台,因此如果要使系统能够正常运行,我们需要把编好的uClinux

20、操作系统嵌入到硬件当中去,也就是要完成嵌入式软件平台的搭建。现在对本毕业设计所用的硬件平台三星公司推出的S3C44B0,S3C44B0X 的片上资源和特性予以介绍。2.1.1.S3C44B0X 的片上资源2.5V 供电的 ARM7TDMI 内核,带 8KB 的高速缓冲器;专用外部存储器(具备 FP/EDO/SDRAM/ROM 控制器和片选逻辑);LCD 控制器(最大支持支持 256 色 STN,LCD 专用 DMA);2 通道通用 DMA、2 通道外设 DMA,并具有外部请求引脚;2 通道 UART 带有握手协议(支持 IrDA1.0,具有 16-Byte FIFO)和 1 通道 SIO;1

21、通道多主 IC 总线控制器;1 通道 IS 总线控制器;5 个 PWM 定时器和 1 通道内部定时器;看门狗定时器;71 个通用 I/O 口;8 通道外部中断输入;功耗控制具有普通,慢速,空闲和停止四种模式;8 通道 10 位 ADC 输入;带日历功能的实时时钟(RTC);2.1.2.S3C44B0X的特性S3C44B0X采用一种新的三星ARM CPU嵌入总线结构SAMBA II,主频最高达66MHZ。 电源管理支持:正常模式, 低俗模式, 空闲模式和休眠模式。 系统管理功能: 1.支持大小端工作方式。2.地址空间: S3C44B0X 可以对 8 个 bank 空间进行寻址,每个 bank 的

22、最大空间为 32MB.(总共 256Mbyte) 。3.每个bank支持可编程的8/16/32位数据总线宽度。 4.固定的bank起始地址,7个bank可以编程控制大小。 5.8个存储器 bank. 6 个ROM, SRAM 等存储器 bank. 2 个ROM/SRAM/DRAM 存储器bank 6.所有的存储器bank具有可编程的操作周期。 7.支持外部等待信号延长总线周期。 8. DRAM/SDRAM 在掉电情况下支持自刷新模式。9.支持均匀/非均匀的DRAM地址。2.1.3.S3C44B0X开发板内部结构介绍用于此毕业设计的开发板为S3C44BOX,其内部结构如图1.1所示 图 1.1

23、S3C44BOX内部结构图2.2.软件平台介绍2.2.1.软件系统开发流程图介绍 嵌入式应用系统的设计包括硬件系统设计和软件系统设计两部分,并且这两个部分的设计是相互联系、密不可分的,因此在嵌入式应用系统的设计时需要考虑到硬件部分也要考虑到软件部分。首先嵌入式软件系统开发流程如图1.2:内核及内核移植内核调试系统调试应用程序 图 1.2嵌入式软件系统开发流程2.2.2.ucLinux软件系统构建uClinux的移植所谓移植,就是使一个实时内核能在某个微处理器或微控制器上运行。移植的目的一般来说有三点:1硬件平台的升级;2实现软件重用;3实现软件/硬件并行设计。要成功的完成移植,需要软件满足以下

24、条件:1移植对象具有与硬件无关性;2移植对象具有与系统无关性;3移植对象采用标准语言编程。uClinux能满足要求,为了实现基于uClinux的移植,需要有一个完备的开发环境。基于uClinux操作系统的应用开发环境一般是由目标系统硬件开发板和宿主PC机构成。目标开发板用于运行操作系统和系统软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试需要通过宿主PC机来完成,两者之间一般通过串口,并口或以太网接口建立联系。建立交叉编译平台基于ucLinux的应用开发环境一般是由目标系统硬件开发板和宿主PC机所构成。硬件开发板用于操作系统和目标系统应用软件的运行,而操作系统内核的编译、应用软件

25、的开发和调试则需要借助宿主PC机来完成。双方之间一般通过串口建立连接关系。在软件开发环境建立方面,由于uCLinux及相关工具集都是开放源码的项目,所以大多数软件都可以从网络上下载获得。首先要在宿主机上安装标准Linux发行版,比如Red-hat Linux,接下来就可以建立交叉编译环境。因为每一种处理器都有它独特的机器语言,必须选择一种能为目标处理器产生程序的编译器,而在嵌入式系统的情况下,编译器几乎都是在主机上运行,象这样一个运行在一个计算机平台上并为另一个平台产生代码的编译器就叫交叉编译器。使用交叉编译器是嵌入式软件的固有特征,在linux下利用for ARM的linux工具链生成的这个

26、编译环境不仅能够对符合gnuc标准的的c语言编译,而且能够识别ARM的指令系统,对ARM的汇编语言进行编译,支持c和汇编的混合编译,生成所需要的文件及文件格式。针对ucLinux; 目前有两套编译工具:m68k-coff和m68k-elf,它们都是GNU组织开发的优秀的编译器GCC的不同应用版本。它们的区别在于形成最终flat目标码之前的中间代码格式分别是coff和elf类型。elf格式的编译器比coff格式的编译器有许多优越性,本课题采用m68k-elf交叉编译器。编译工具包中除了交叉编译器(arm-elf-gcc),调试器(arm-elf-gdb),还有一些辅助工具(ar m-elf-bi

27、nutils),包括链接器(ld)、汇编器(as)以及一些为了方便开发的二进制处理工具包括生成静态库工具(ar, ranlib)、二进制码察看工具(nm,size)、二进制格式转换工具(ob_jcopy )。这些都要安装在宿主机上。安装方法:a)到http:/mac.os .nc tu.ed u.tw /-download处下载toolchainarm-elf-binutils-2.11-5,1i386.rp m,,ar m-一elf-一gcc-一2.95.,3-一2.1386.rp m,genromfs-0.5 .1 一l.1 386.r pm.b)在linux安装这些rpm(含可执行的二进

28、制程序):rpm一ivh*.rpm一般而言,交叉开发环境的搭建过程的核心,即交叉编译工具、汇编工具、连接工具、调试工具的建立,大体上都的遵循图1.3所示流程。编译调试工具gdb重新编译完整的编译工具gcc编译该平台的glibc库编译自举的编译工具gcc生成汇编器、连接器、库处理工具等准备硬件环境头文件IPC环境工具和库等 图 1.3 交叉开发环境搭建流程图 安装uCLinux内核利用已安装的交叉编译器编译生成运行在目标机上的uCLinux内核。与标准Linux相同的是,uCLinux内核可以以配置的方式选择需要安装的模块,而增加系统的灵活性。下载uclinux的源代码包uClinux-Sams

29、ung-20020318.tar.gz,解开:tar x zf uClinux-Samsung-20020318.tar.gz到解开的uclinux目录:cd uClinux-Samsung-20020318安装应用程序库用交叉编译器编译。C-libc和uC-libm源码,生成libc.a 应用程序库和1ib m.a 数学库。安装其他工具用GCC编译elf2flt源码,生成格式转换工具elf2flt。用GCC编译genromfs源码,得到生成romfs工具genromfs._第三章 POP协议的分析3.1.POP3的特点、客户端的工作流程POP协议允许工作站动态访问服务器上的邮件,目前已发展到

30、第三版,称为POP3。POP3允许工作站检索邮件服务器上的邮件。POP3传输的是数据消息,这些消息可以是指令,也可以是应答。创建一个分布式电子邮件系统有多种不同的技术支持和途径:POP(邮局协议)、DMSP(分层式电子邮件系统协议)和 IMAP(因特网信息访问协议)。其中,POP 协议创建最早因此也最为人们了解;DMSP具有较好的支持“无连接”操作的性能,但其很大程度上仅限于单个应用程序(PCMAIL);IMAP提供了POP和 DMSP 的扩展集并提供对远程邮件访问的三种支持方式:离线、在线和无连接。POP协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机

31、程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或MAC。一旦邮件发送到PC机或MAC上,邮件服务器上的邮件将会被删除。POP3并不支持对服务器上邮件进行扩展操作,此过程由更高级的IMAP4完成,POP3使用TCP作为传输协议。3.2.POP3命令摘要及命令详解POP3 命令摘要如表1.1: 表1.1 POP3命令摘要命令描述USER用户名PASS用户密码APOP转换验证机制QUIT终止会话NOOP空操作STAT提供信箱大小信息LIST提供意见大小信息RETR从服务器上取出邮件TOP取出信头和邮件的前n行DE

32、LE标记邮件被删除RSET复位POP会话UIDL取出邮件的唯一标识符命令详解如下:用户:USER该命令用来验证用户信箱。客户机:USER用户信箱服务器:+OK在成功连接POP3服务器后,客户端要发送“user+用户名”的命令进行验证,如果成功则返回+OK的应答,如果失败,则返回-ERR。例如:user-ERR missing user name argument这是由于USER命令之后没有提供用户信箱名的原因。提示信息根据服务器不同而异。值得注意的是,USER命令不是必需的,但通常POP服务器至少必须实现一个验证机制。大多数POP服务器的USER命令还是需要的。USER命令只能在会话的验证状态

33、时进行,验证完成后进入事务状态。如果USER命令验证没有通过,一些服务器会在提示错误信息后,客户端可以再次发出这个命令以请求再次验证。密码:PASS。该命令用来为USER命令指定的信箱提供密码。客户机:PASS。服务器:+OK成功则返回的应答为+OK,如果密码与用户信箱名不相匹配,则返回-ERR。如果验证成功,会话进入事务状态;如果失败,则服务器保持在验证状态中。除了因为密码和用户信箱不匹配外,如果服务器不能获得对信箱的独占访问锁,服务器也应答一个错误,并且保持在验证状态中。例如:PASS 123456-ERR maildrop is already locked通常在已经有其他用户登陆该信箱

34、进行操作时产生上述情况。POP服务器是不允许同时有两个进程访问同一个信箱的。值得注意的是如果PASS命令失败,不允许客户端简单地发送另一个PASS命令进行验证,而是在发送PASS之前要重新发送USER命令。退出:QUIT该命令终止会话,断开与服务器的连接。客户机:QUIT服务器:+OK成功响应为+OK,失败为-ERR。如果会话在验证状态,QUIT引起服务器关闭连接。如果会话在事务状态,POP服务器进入更新状态,在关闭连接前删除标记为删除的任何邮件。如果用户不是通过QUIT命令关闭连接而是在客户端进行强行关闭,则在事务状态标记删除的邮件并没有被删除。如果在更新状态时删除邮件遇到错误,服务器应答一

35、个错误信息。但不管QUIT命令成功与否,信箱琐都被释放,连接关闭。空操作:NOOP该命令什么也不做,只是检测服务器的连接。客户机:NOOP服务器:+OK成功返回+OK,失败返回-ERR。该命令只能在事务状态中使用,除了可以检测与服务器的连接是否正常,还可以防止一个自动注销定时器定时关闭连接。状态:STAT该命令请求服务器返回信箱大小的信息,但是不包括标记为删除的邮件。客户机:STAT服务器:+OK服务器的应答包含有信箱邮件的数量以及所有邮件的大小。STAT命令仅在务状态是可用的。列表:LIST 该命令请求服务器返回一个信箱中特定邮件的大小信息或没有删除标记的所有邮件的大小。客户机:LIST X

36、服务器:+OK X 1046该命令有两种使用情况:带参数和不带参数。LIST后面如果指定邮件,则返回邮件大小信息,如上面所示。LIST指定的邮件如果被删除或不存在,则出错:客户机:LIST 3服务器:-ERR no such message ,only message 1 thru 1 are present in your inbox如果LIST不带参数,例如:客户机:LIST服务器将返回多行应答。+OK1 10452 2204应答成功先是响应+OK,接着每一行含有一个邮件号和邮件的大小(字节数)。最后是一句点“.”作为结束行。如果没有邮件,服务器将响应一个成功的多行应答,在初始化和和结束行

37、之间没有任何应答语句。客户器:LIST服务器:+OK取出邮件:RETR该命令用于取出指定邮件号的邮件。客户机:RETR 1服务器:+OK 13100 octetsReceived: from company.mail 127.0.0.1 by company.mail 127.0.0.1 with RAW(Mdaemon.v2.7.sp3.T) for; Tue,04 Dec 2005 18:49 +0800Date:Tue,04 Dec 2004 18:49 +0800From: Mdaemoncompany.mail X-MDSend-Notifications-To:trashSubje

38、ct:Welcome to the email system for domain company.mail To: wangcompany.mailReply-To: Mdaemoncompany.mailMessage-ID:Mime-Version:1.0Content-Type:text/plain;charset=us-asciiX-Actual-To: wangcompany.mailX-Actual-From: Mdaemoncompany.mailWelcome wang!如果请求成功,服务器返回的书多行应答,先是“+OK”表示响应成功,接着返回邮件的所有内容,包括信头,信体,

39、如果有附件,附件内容也以文本的形式返回。最后以一个句点“.”表示结束。为了防止单个句子引起客户提前结束邮件读取。指定的邮件不存在:客户机:RETR 3服务器:-ERR no such message如果邮件标志删除后,同样会出现错误:客户机:DELE 1服务器:+ OK message 1 deleted客户机:RETR 1服务器:-ERR no such messageRETR后面所带的指定邮件标号是必须的,如果不带这个参数就会出错。客户机:ERTR服务器:-ERR missing required message number parameter取出前几行:TOP客户机:TOP 1 1服务

40、器:+OK Received: from company.mail 127.0.0.1 by company.mail 127.0.0.1 with RAW(Mdaemon.v2.7.sp3.T) for; Tue,04 Dec 2005 18:49 +0800Date:Tue,04 Dec 2004 18:49 +0800From: Mdaemoncompany.mail X-MDSend-Notifications-To:trashSubject:Welcome to the email system for domain company.mial To: wangcompany.mail

41、Reply-To: Mdaemoncompany.mailMessage-ID:Mime- Version:1.0Content-Type:text/plain;charset=us-asciiX-Actual-To: wangcompany.mailX-Actual-From: Mdaemoncompany.mailWelcome wang!第四章 基于uclinux的pop3协议客户端实现4.1 主要工作和步骤本文通过移植ucLinux来实现POP3协议客户端。要进行的工作主要有如下几个:搭建硬件平台,uclinux移植工作,建立交叉编译平台,安装uCLinux内核,安装应用程序库以及其它

42、工具,其中重点是要进行uclinux移植和建立交叉编译平台工作,最后编写程序实现POP3协议客户端。前面的软件平台搭建中已经提到移植的概念,即使一个实时内核能在某个微处理器或微控制器上运行。下面是移植的主要步骤:4.1.1 安装uClinux移植包在进行uClinux移植时,选用一个与自己系统相近并且已经成功的进行了uClinux操作系统移植的uClinux包将大大简化uClinux的移植过程。uClinux源代码的开放性使得这一点非常容易做到。我们采用uClinux-dist.tar.gz来完成移植的工作。将uClinux-dist.tar.gz拷贝在Linux环境下/home目录下,运行解

43、压缩,完成解压缩后会产生uClinux-dist目录,这样完成uClinux移植包的安装。4.1.2 安装交叉编译器从http:/www.uclinux.org/pub/uClinux/arm-elf-tools/下载工具链arm-elf-tools-20030314.sh,将其在根目录下解压缩,这样就将交叉编译器建立起来。4.1.3 .配置内核完成以上工作后,接下来可进行内核的配置。下面是如何配置uClinux内核:在Linux环境下打开终端,键入命令,如图所示:cd /home/lch/uClinux-distmake menuconfig进入uClinux配置环境,选中“Slect th

44、e Vender you wish to target”敲空格键,出现如图4.1示窗口:图4.1 uClinux配置环境选中Kernel/Library/Defaults Slection后,按Enter键,出现如图4.2界面: 图 4.2 uClinux配置环境图4.3 uClinux配置环境其中有两个选项:Customize Kernel Settings和Customize Vendor/User Settings这两项是定制内核设置和定制用户选项设置。选中此两项,如果有其他配置可全部选中,然后选中Exit按下回车键退出,连续两次后再出现的画面中选择Yes,进入图4.3图4.4 uCli

45、nux配置环境在进入的内核配置(Linux Kernel v2.4.20-uc0 Configuration)中进行如下配置:1配置General Setup在图4.3的Networking options中,敲空格进入图4.5,选中其中的两项:Packet socke和TCP/IP networking;图4.5 uClinux配置环境2 配置Networking device Support在图4.3,选中Networking device Support,敲空格进入,选中:Network device support? 选中:Ethernet (10 or 100Mbit) 进入下一步配置;图4.6 uClinux配置环境在图4.6中选中:Other ISA cards,在下拉的选项中,选中:NE2000/NE1000 support,最后退出时选中Yes保存设置。通过以上步骤完成内核配置。内核配置完成后,紧接着是配置用户选项,如图4-7所示:图4.7 uClinux配置环境然后按照所需进行配置,直到配置最后完成,最后进行保存。4

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号