找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4694|回复: 4

ACE 的异步读写问题。

[复制链接]
发表于 2008-5-6 10:52:41 | 显示全部楼层 |阅读模式
我用ACE前摄器中的异步读写操作,写了一个传文件的程序,没有分片,为什么50M左右的文件可以传过去,70M左右就停掉了。
ACE的异步读写内部有没有循环机制呢,还是要自己控制大小,自己写循环操作?
发表于 2008-5-6 11:06:06 | 显示全部楼层
我的理解:
1、如果你没有分片,直接传的话,OS是用系统内部的缓冲区来进行读写操作的,这要看系统自身的设置了。缓冲区投递太多,用尽就停止了。
2、分片是必然的,推荐采用和内存分页值一致的分片缓冲区。自己循环操作进行处理,其实很简单的。只要计算好文件尺寸,控制结束就可以了。
发表于 2008-5-11 22:21:10 | 显示全部楼层
网络有MTU限制的,
底层缓冲区哪有那么大?
发表于 2008-5-11 22:24:07 | 显示全部楼层
注意partial write,
要自己写循环发送剩下的数据的
发表于 2008-5-16 11:16:00 | 显示全部楼层
参照Reactor内Proactor关于文件传输的Demo,使用ACE_Asynch_Transmit_File,我试过大于200M的文件传输没问题。无须循环控制文件的发送。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-23 18:25 , Processed in 0.022393 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表