随笔-142  评论-15  文章-0 
  2018年1月9日
摘要: 继上文,我们使用ZeroC Ice传递大块数据时,通常有两种做法,一种是一次请求,另一种就是分多次请求(,这种做法在官方文档有例子)。选哪一种根据需要而定。 当分多次请求来完成一大块数据,到底选择每次请求多大的数据合适呢? 首先清楚下面几点,每次请求应该用 two-way进行,也就是 request阅读全文
posted @ 2018-01-09 18:17 bbqz007 阅读(8) 评论(0) 编辑
摘要: 昨天发现通过 Ice发送请求传递一个大块数据时,当请求的体积大于1.2M后,直接抛出异常Connection Lost,对方peer或是断开了。通过防火墙配置排查,以及对同一网络同一机器的php服务post大于1.2M的请求没问题,排除了服务机器上的防火墙。剩下就是跟踪抓包了。 我的开发环境是 VM阅读全文
posted @ 2018-01-09 14:27 bbqz007 阅读(8) 评论(0) 编辑
  2017年12月1日
摘要: 当你的android在灭屏(休眠)时分派(dispatch) Ice调用过程中,如果创建了新的进程,你的响应将不会预期那样工作,尽管你已经调用 ice_response或 ice_exception,并且成功返回了。 先来搞清楚,Ice 所有的底层 IO都发生(或者说执行)在 reactor的 Th阅读全文
posted @ 2017-12-01 20:30 bbqz007 阅读(5) 评论(0) 编辑
  2017年11月20日
摘要: 在编译android平台用的ffmpeg时,抛出这样一个错误: 这句代码怎么看都找出有毛病,为什么B0会报错? 翻看aaccoder.c,也没有发现问题。为什么B0就成了一个常量数字,这里只有一个可能,B0在某处被宏定义了。那么将B0替换名称为BB0,果然顺利通过编译。 但是又不久又报出错误: 又是阅读全文
posted @ 2017-11-20 11:26 bbqz007 阅读(4) 评论(0) 编辑
  2017年11月13日
摘要: 众所周知,有一个程序screencap可以截屏,这个程序十分简单,只是使用了surfaceflinger服务的截屏功能。 所以要了解截屏,看surfaceflinger服务的代码是不二首选。但是surfaceflinger也随android系统显示子系统的变更而变更,网上最容易搜到的android资阅读全文
posted @ 2017-11-13 19:12 bbqz007 阅读(30) 评论(0) 编辑
  2017年11月9日
摘要: 我们都知道在写汇编函数过程都会偶对齐,而gcc编译器都会将函数编译为cpu字长对齐的地址。arm指令集是固定32位指令长度,thumb指令集是固定16位指令长度, 但是运行在arm下的程序,dlsym返回的符号地址居然不是对齐的。 先来看现象,下面是从libui库中取两个函数符号。 结果显示为两个奇阅读全文
posted @ 2017-11-09 15:03 bbqz007 阅读(19) 评论(0) 编辑
  2017年11月3日
摘要: 如果准备使用ace框架,小心在SIGCHLD处理和waitpid函数与其它框架冲突,导致其中一方的框架的ProcessManager组件工作不正常。阅读全文
posted @ 2017-11-03 19:49 bbqz007 阅读(6) 评论(0) 编辑
  2017年11月1日
摘要: 即使你的程序提升到root权限了,如果你的程序依赖了其它进程的服务,那么你所依赖的进程的selinux权限,也将制约着你的程序。阅读全文
posted @ 2017-11-01 16:50 bbqz007 阅读(48) 评论(0) 编辑
  2017年10月31日
摘要: 在exec执行一个子进程,我们希望使用管道取得子进程在标准输出的结果,同时等待子进程的结束。那么是等待子进程结束后才取管道数据,还是边取数据边等待子进程结束呢?阅读全文
posted @ 2017-10-31 16:27 bbqz007 阅读(52) 评论(0) 编辑
  2017年10月30日
摘要: 如果你是希望通过0MQ来做缓冲队列,非阻塞的效果,那你就必须清楚 0MQ Socket是会阻塞的,必须要搞清楚0MQ Socket与队列的关系。阅读全文
posted @ 2017-10-30 14:39 bbqz007 阅读(28) 评论(0) 编辑