首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >存在哪些异步或增量IMAP客户端或解析器?

存在哪些异步或增量IMAP客户端或解析器?
EN

Stack Overflow用户
提问于 2011-04-22 18:41:12
回答 2查看 1.2K关注 0票数 1

我正在寻找一个可以支持异步I/O的IMAP客户端库或解析器。最终目标是我可以有专门的线程来执行套接字I/O (通过poll()循环或类似的),并且可以在数据可用时将数据发送到等待的客户端/解析器。到目前为止,我所见过的所有代码/库(java.mail、Python、Thunderbird的C++ IMAP客户端、许多用C、C++编写的随机代码)似乎都遵循传统的阻塞、每个套接字一个线程的方法,这对我来说是行不通的。

我理想的客户机或库的行为与https://github.com/ry/http-parser非常相似,因为I/O行为不是由IMAP位决定的。相反,IMAP库将处理缓冲区/字符串,而调用者将管理I/O。

到目前为止,我看到的唯一可能是libcurl。但是,我不确定API是否会工作,并希望在走得太远或发明自己的解决方案之前先看看其他可能性。

我对任何编程语言中的库都持开放态度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-22 19:17:39

Twisted (http://twistedmatrix.com/)有一个异步IMAP4客户端: twisted.mail.imap4.IMAP4Client

人们有时会说这个协议很难实现,所以实现质量可能是一个问题。已经不存在的Chandler项目使用了twisted IMAP4客户端,其源代码中包含这样的注释:“此功能将在不久的将来增强为更强大的IMAP客户端”。

票数 1
EN

Stack Overflow用户

发布于 2014-06-13 06:24:15

在这类事情上,我用node.js得到了很好的结果。如果监听大量打开的套接字,您将需要调整一些linux设置,以增加打开的文件描述器的数量限制,但它的效果很好。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5758785

复制
相关文章
PHP判断远程图片或文件或url是否存在
//判断远程文件 function check_remote_file_exists($url) { $curl = curl_init($url); // 不取回数据 curl_setopt($curl, CURLOPT_NOBODY, true); // 发送请求 $result = curl_exec($curl); $found = false; // 如果请求没有发送失败 if ($result !== false) { // 再检查http响应码是否为200 $statu
wangxl
2018/03/07
3.1K0
Windows系统关键目录的文件有缺失或存在异常或出现新文件可能导致哪些后果
Windows系统关键目录很多,这些目录文件有缺失或存在异常或出现新文件可能导致严重后果,下面举几种常见例子,后续遇到了新case会再增补。
Windows技术交流
2022/06/07
5.7K1
位运算符有哪些_或运算和异或运算
位运算符的计算主要用在二进制中。 实际开发中也经常会遇到需要用到这些运算符的时候,同时这些运算符也被作为基础的面试笔试题。 所以了解这些运算符对程序员来说是十分必要的。 于此,记录下我所理解的运算符:
全栈程序员站长
2022/11/07
5580
golang判断文件或文件夹是否存在
golang判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断: 如果返回的错误为nil,说明文件或文件夹存在 如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹不存在 如果返回的错误为其它类型,则不确定是否在存在 func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil {
李海彬
2018/03/19
5.7K0
科学家说「时间晶体」或真的存在
根据最新发表在Physical Review Letters上的文章,时间晶体,这种听起来科幻感满满的东西可能真的存在。 诺贝尔奖得主Frank Wilczek在2012年首次提出这个概念。一开始这只是纯粹出于数学上的好奇,将结晶的概念从三维扩张到思维。现在Wilczek新研究说明了这种晶体存在的真实可能。 针对时间晶体的主要疑点就是,它们似乎可以通过周期性移动实现永恒运动,然后可以反复回归到原始状态。这就违反了物理学中一条基本的对称性,即“时间平移对称性”。 时间平移对称是一项基础的时空对称,即物理法则在
大数据文摘
2018/05/22
3860
ExcelVBA判断文件或文件夹是否存在
返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
哆哆Excel
2022/10/25
6.6K0
ExcelVBA判断文件或文件夹是否存在
mysql新增表或字段时判断是否存在
在升级程序时往往是一大堆的sql语句,而单一的sql语句是没法在新增时判断表或字段是否存在的,必须写成存储过程
仙士可
2019/12/18
9.1K0
或对,或错?
公号许久没更文了,这段时间以来,自己在面临着一些抉择。未曾想过,毕业后一个月考虑的事情比大学四年加起来的还要多。也许是大学过得太安逸了,欠的债全部攒到毕业后来还。
Python技术与生活认知的分享
2018/09/30
4690
或对,或错?
或 、与、异或
& 与 (都是1时,结果才为1) 表示按位与。 &表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。 二进制与运算规则:1&1=1  1&0=0  0&0=0 | 或  (只要有1,那么就是1) 表示按位或 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位(也就是最后一位)相或。只要对应的二个二进位有一个为1时,结果位就为1。 ^ 异或 (只要一样结果就是0) 按
Lokinli
2023/03/09
9640
PHP检查对象或类中是否存在属性
$obj = \app\common\library\Email::instance(); $obj->p=889; if(isset($obj->p)){ echo 66; }else{ echo 99; } die; isset既可以判断对象的属性是否存在,也可以判断数组的键名是否存在 未经允许不得转载:肥猫博客 » PHP检查对象或类中是否存在属性
超级小可爱
2023/02/20
4.4K0
EasyNVS出现“请求服务不存在或已停止”
传统的安防监控直播一般都是存在于内网,网络、播放客户端都是实际使用中存在的瓶颈问题,针对这些问题,咱们推出了EasyNVR+EasyNVS方案,在保证传统安防功能性的同时更加符合现代互联网直播的要求!!! EasyNVS完美的实现将内网中的EasyNVR的全部功能由公网EasyNVS做到对外的转发!!!
EasyNVR
2020/04/23
6880
EasyNVS出现“请求服务不存在或已停止”
使用多线程或异步技术提高图片抓取效率
图片抓取是爬虫技术中常见的需求,但是图片抓取的效率受到很多因素的影响,比如网速、网站反爬机制、图片数量和大小等。本文将介绍如何使用多线程或异步技术来提高图片抓取的效率,以及如何使用爬虫代理IP来避免被网站封禁。
jackcode
2023/09/07
3150
使用多线程或异步技术提高图片抓取效率
单独设置UIView的坐标x或y或width或height
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53393737
用户1451823
2018/09/13
1.4K0
Django应用上线前有哪些注意事项?如何使用同步或异步容器启动Django应用?
首先在整个应用上线前,应该有完整的单元测试去测试各模块的功能。通常需在写代码的过程中甚至之前需要写好单元测试,以便高效维护代码的设计结构。我们可以使用Python自带的UnitTest或者Django的TestCase,这里介绍下Django的TestCase。下图为Django TestCase的几个重要的基类:
才浅Coding攻略
2022/12/12
1.6K0
Django应用上线前有哪些注意事项?如何使用同步或异步容器启动Django应用?
与(&)、或(|)、异或(^) – 位运算详解
位运算,在平时的使用频率不是很高,大部分人都很少用到,以至于对位运算的理解也是比较模糊。
Yiiven
2022/12/15
1.8K0
与(&)、或(|)、异或(^) – 位运算详解
java异或运算_异或校验
异或运算常用来做数据的简单校验。Java的实现:(将字节数组两两异或,返回最后异或值)
全栈程序员站长
2022/11/09
1.5K0
大数据之Phoenix使用代码或客户端连接
查看表的 TABLE_SCHEM 发现有些表这个属性为空。 那么如果你没有指定自动映射命名空间,就会报错。
码客说
2023/08/10
1.4K0
与门变或门,或门变与门
掌握常见逻辑门的等价变换是手工做网表ECO重要技能。比如,与门和或门的互换、与/或跟选择器的互换、DFF的SET和RESET互换、DFF上升沿和下降沿的互换等。下面介绍与门和或门的互换方法:
ExASIC
2021/12/31
2.1K0
与门变或门,或门变与门
技术干货| MongoDB如何查询Null或不存在的字段?
点击下方公众号关注并分享,获取MongoDB最新资讯! 在MongoDB中不同的查询操作符对于null值处理方式不同。 本文提供了使用mongo shell中的db.collection.find() 方法查询null值的操作案例。案例中使用的inventory集合数据可以通过下面的语句产生。 db.inventory.insertMany([ { _id: 1, item: null }, { _id: 2 } ]) 等值匹配 当使用**{item:null}作为查询条件的时候,返回的是
MongoDB中文社区
2022/05/07
2.4K0
案例:Oracle报错ASM磁盘组不存在或没有mount
环境:RHEL 6.5 + Oracle Standby RAC 11.2.0.4 我做Standby RAC实验时,在恢复控制文件时,报错无法在磁盘组创建文件,具体报错内容如下:
Alfred Zhao
2019/05/24
1.4K0

相似问题

IMAP解析器或服务器示例

12

电子邮件解析器或php imap功能?

11

不带POP或IMAP的邮件客户端

31

PHP Imap扩展与部落框架imap客户端(或其他备选方案)

35

GraphQL解析器-什么时候使解析器函数异步或不异步?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档