随笔分类 -  Network

libcurl之ftp上传 & 下载
摘要:由于项目的需要,利用libcurl编写程序与ftp服务器通信,进行文件上传或下载,愈发地感到curl功能的强悍。其实在命令行下直接使用curl命令就可以完成这些功能,但是需要获取上传下载行为的状态以便更好地控制。直接上代码:View Code 1 //ftp-manager.h 2 3 #ifndef _FTP_MANAGER_H_ 4 #define _FTP_MANAGER_H_ 5 6 /*FTP OPERATION CODE*/ 7 typedef enum FTP_STATE 8 { 9 FTP_UPLOAD_SUCCESS,10 FTP_UPLOAD_FAIL... 阅读全文

posted @ 2012-07-17 20:25 pathenon 阅读(1266) 评论(0) 推荐(0)

I/O多路复用之epoll
摘要:在上一章,我们对select进行了大致的描述,知道了它相对传统的阻塞式服务提高了并发度,但是它也由于轮询而导致效率底下。本文对epoll进行讲解,相比select它的并发度更高,现代高负载服务器很多都采用这种模型。在讲解epoll的具体用法之前,我们先看看采用epoll模型主要用到的三个函数以及一个数据结构。epoll中三个主要的函数:(1)int epoll_create(int size);功能 :生成一个epoll专用的文件描述符。参数 :size:在该epoll fd上关注的最大socket fd数。返回值:生成的文件描述符。(2)int epoll_ctl(int epfd, i.. 阅读全文

posted @ 2012-07-17 20:23 pathenon 阅读(208) 评论(0) 推荐(0)

I/O多路复用之select
摘要:select的功能可以用一句话来描述:实现基于I/O多路复用的异步并发编程。在具体讲解select之前我们先看看常规的阻塞socket编程方式,以服务端为例: 对于这种方式,最大的问题在哪里呢?accept和recev的阻塞调用!下面以两种场景为例,来说明相比这种情况,select是如何做到异步I/O多路复用的高效性。 第一种场景:server除了要对外响应client的服务外,还要能够接受标准输入的命令来进行管理。 假如使用上述阻塞方式,在单线程中,accept调用和read调用必定有先后顺序,而它们都是阻塞的。比如先调用accept,后调用 read,那么如果没有客户请求时,服... 阅读全文

posted @ 2012-07-17 20:22 pathenon 阅读(203) 评论(0) 推荐(0)

导航