php c扩展的问题请大家帮帮我
程序员文章站
2022-05-03 15:10:16
...
我用php扩展与 c 程序通信, php扩展作为client, c程序作为server且一直在监听所有的连接描述符;
php扩展中如果已经connect成功后, 那么以后的php请求都用同一个socket;
但是我在测试过程中发现,假如server重启,php扩展再也无法正常与server通信, php扩展向server发请求(send)后会接受到 broken pipe的错误;
我在php扩展中做的处理是 假如send 或recv失败 就重新关闭链接重连;
同样的代码我在纯c环境中测试没问题. 但是放在php中 就不行
求帮忙 谢谢
php扩展中如果已经connect成功后, 那么以后的php请求都用同一个socket;
但是我在测试过程中发现,假如server重启,php扩展再也无法正常与server通信, php扩展向server发请求(send)后会接受到 broken pipe的错误;
我在php扩展中做的处理是 假如send 或recv失败 就重新关闭链接重连;
同样的代码我在纯c环境中测试没问题. 但是放在php中 就不行
求帮忙 谢谢
回复讨论(解决方案)
编译扩展后在php中执行不行?
问题根源已找到,
apache会启动多个httpd, 每个httpd都会加载php扩展, 也就是说httpd都会与tcp server 通信
当server 重启后, php请求通过某个httpd向server send消息, 返回一个broken pipe信号, httpd进程默认被终止. 然后php请求又通过其他httpd发请求,其他的httpd同样的也会被终止, 当所有的httpd都被重启后, 通信就不会再产生broken pipe信号
问题根源已找到,
apache会启动多个httpd, 每个httpd都会加载php扩展, 也就是说httpd都会与tcp server 通信
当server 重启后, php请求通过某个httpd向server send消息, 返回一个broken pipe信号, httpd进程默认被终止. 然后php请求又通过其他httpd发请求,其他的httpd同样的也会被终止, 当所有的httpd都被重启后, 通信就不会再产生broken pipe信号
顺便问一下,楼主有什么php扩展的资料不??
能否共享一下?
http://www.laruence.com/2009/04/28/719.html
还有一个
PHP内核介绍及扩展开发指南
自己百度吧
上一篇: 使用源码安装MySQL 5.5.9版本
下一篇: 如何构建高扩展性网站?
推荐阅读
-
phpMyAdmin“无法载入 mysql 扩展, 请检查 PHP 配置”问题的解决方案
-
关于PHP向MYSQL插入图片地址字符串的有关问题,请大家详解
-
请帮忙看看PHP调用C#的webservice的问题
-
PHP中echo JS的有关问题,好诡异啊请大家看看
-
关于PHP向MYSQL插入图片地址字符串的有关问题,请大家详解
-
关于PHP向MYSQL插入图片地址字符串的有关问题,请大家详解
-
请大家进来讨论下,windows 系统下 nginx+php 是如何解决并发访问有关问题的
-
关于PHP向MYSQL插入图片地址字符串的有关问题,请大家详解
-
请帮忙看看PHP调用C#的webservice的有关问题
-
PHP中echo JS的有关问题,好诡异啊请大家看看