- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第19章 网络编程函数库 网络应用中有许多建立在应用层的协议,这些协议提供了我们常用的HTTP、FTP、TELNET、EMAIL和即时通信服务。在Linux系统上设计这些网络应用可通过查阅RFC(Request For Comments)文档获取相关协议的细节,再用Socket编程实现这些细节以组成一个网络应用程序。但如果对这些应用没有特殊的性能或功能要求,可使用现有的函数库来构建所需要的网络应用,所有常见网络应用在Linux系统上都有对应的函数库。本章将介绍其中最常用的几个函数库。 19.1 HTTP与FTP函数库 HTTP协议以TCP为基础,是Web客户端与WWW服务器之间的应答标准。客户端是终端用户, 文件传输协议(FTP,File Transfer Protocol)是进行文件传输的一套标准协议,属于TCP/IP协议中的一部分。FTP服务一般运行在20和21两个端口。其中端口20用于传输数据流,端口21用于传输控制流。FTP有两种使用模式:主动传输模式和被动传输模式。 19.1.1 libcurl函数库简介 libcurl是一个为网络客户端提供数据传输功能的函数库,它支持HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE等协议,支持各种SSL安全认证。 19.1.2 libcurl中的主要函数 与libcurl相关的函数被包含在头文件“curl/curl.h”中。使用libcurl前首先要对libcurl进行初始化,可通过curl_global_init()函数实现,它的一般形式是: CURLcode curl_global_init(long flags); 19.1.3 使用libcurl实现简单的HTTP访问 本例将使用简单接口模式设计一个HTTP访问的应用程序,通过网络获得的HTML文件(超文本文件格式文件,HTTP服务所使用的标准文件格式),并将该文件保存到本地。 19.2 SMTP、POP与IMAP函数库 IMAP、POP与SMTP是常用的三种电子邮件协议。SMTP称为简单Mail传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效、可靠的邮件传输。 POP的是邮局协议(Post Office Protocol),用于电子邮件的接收,它使用TCP的110端口,现在常用的是第三版,所以简称为POP3。 IMAP(Internet Message Access Protocol)是通过Internet获取邮件信息的一种协议。IMAP像POP那样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP能完成的却远远不只这些。 19.2.1 使用libESMTP函数库实现电子邮件发送 libESMTP函数库是Linux系统上最常用的SMTP协议库,很多电子邮件客户端的邮件传送功能都是建立在该库的基础上,有的甚至直接借用其实现SMTP协议细节的代码。要使用该函数库可在其官方站点“/libesmtp/”上获得源文件进行编译,或者在Linux终端内输入下列命令: yum install libesmtp libesmtp-devel 19.2.2 使用libspopc函数库实现POP访问 libspopc函数库是一个开源项目,该项目提供了简单的POP协议接口。可在libspopc的官方网站“http://brouits.free.fr/libspopc”上获得函数库源文件进行编译,Linux系统中安装libspopc的命令为: yum install libspopc libspopc-devel // YUM提供的可能不是该软件最新版本 程序编译时需要加入编译参数“`pkg-config --cflags --libs libspopc`”,如果libspopc库是通过源文件编译而来的,则需要在“/usr/lib/pkgconfig”路径中参照其他库配置“libspopc.pc”文件。 19.2.3 使用mailutils函数库实现IMAP访问 IMAP的实现比POP要复杂许多,与IMAP服务器建立连接后,可直接通过会话管理邮箱中的文件。常用的IMAP函数库为华盛顿大学提供的UW-IMAP和GNU项目中的mailutils函数库,两者都能支持几乎所有的电子邮件协议,包括SMTP和POP。UW-IMAP倾向于电子邮件服务器程序的设计,mailutils函数库更倾向于邮件客户端开发。 19.3即时通信函数库 即时通信软件(IM)是一种用于网络间文本消息传递的程序,又称为聊天软件。自诞生以来,逐渐成为网络上最重要的通信工具,并向着多元化方向发展。目前,主流的即时通信软件不但能提供语音和视频通
您可能关注的文档
最近下载
- 四川省(蓉城名校联盟)新高考2022级高三适应性考试数学试卷(含答案).pdf
- 水利监理质量控制体系.doc
- [五年级英语下册.doc VIP
- 《江西省宜春市明月山机场航站楼装修工程》投标技术标文件.doc
- GB_T 15114-2023 铝合金压铸件.docx
- 2021年第四期1+X建筑信息模型(BIM)职业技能初级实操题(三).pdf VIP
- 【最全】usedtodo,beusedtodoing用法辨析及练习(带答案).pdf VIP
- 财务报表审计模拟实训第六版刘雪清答案.pdf
- 广东省广州市天河区2020-2021学年八年级下学期期末考试英语试题(word版 含答案).docx VIP
- 招投标法律法规学习培训PPT.pptx VIP
文档评论(0)