微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 嵌入式系统中SMTP协议的通讯实现

嵌入式系统中SMTP协议的通讯实现

时间:06-21 来源:嵌入式资讯网 点击:

4.SMTP服务器端的实现:

服务器端主要的功能是通过TCP流的套接字服务,在启动后创建"监听"套接字,并将其绑定在为SMTP保留的端口上,接收连接处理。

int main(int artc, char **argv) {

// 初始化链接套接字

bind (listenfd, (struct sockadd*)&servaddr, sizeof(servaddr));

// 进入循环

for (; ;) {

connfd = accept(listenfd, (struct sockaddr*)&cliaddr, &clilen);

if (connfd >0) {

// 在该函数中进行SMTP协议相关的处理工作

handleConnection(connfd);

close(connfd);

}

}

close(listenfd);

}

在函数 handleConnection 中按照SMTP协议元素分析由客户端发送过来的HELO, MAIL FROM, RCPT TO, DATA, 和QUIT 等命令并作出相应的数据处理,然后对客户端作出相应的应答。客户端和服务器端对于命令应答的方式都是固定的,应答内容则随应用的不同而存在差别,这里就不必要进行讨论了。

SMTP服务器端需要考虑的问题:

除了通常的文本信息的传输外,在email中还有额外的附件传输的支持,这可以通过content-type区分是包含了普通的文本信息还是包含了多媒体信息。由于email传输只能支持7位二进制数编码的文本信息,所以对多媒体和其他非文本信息就必需通过其他的编码转换来解决,这里在嵌入式系统中考虑和使用的一般为Base64编码方案,这个编码方案是使用3个8位字节变成4个6位字节来解决多媒体信息变换为文本信息的问题,不过这样有一个不可避免的问题,就是编码转换后的信息流比原始编码流大33%。不过SMTP是个弹性的协议,可以使用任何的带宽,并且Base64这种编码机制为Email中传输二进制数据提供了手段。

5.小结:

对嵌入式设备发送Email的能力以及通过SMTP协议对数据进行传输在许多的领域中都用途广泛,尤其是软件更新方面。在科技快速发展的今天,嵌入式产品将会越来越多地被广泛应用。越来越多的嵌入式产品必将更加深入的走进人们的生活之中。

参考文献:

1.Abraham Operating System Concepts, 6th Edition, Wiley publisher

2.Michael Barr Programming embedded system in C and C++ , O’reilly publisher

3.W Richard Stevens TCP/IP illustrated Volume one:Protocol, 机械工业出版社

4.王超,胡晨 嵌入式系统中HTTP协议的实现, 电子器件 2002。3

5.张晶,曾宪云 嵌入式系统概述,电测与仪表 2002。4

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top