操作系统:redhat linux 9.0
ACE包:ACE5.5
我写的服务器程序使用了ACE_Acceptor,ACE_Svc_Handler,ACE_Reactor的组合通信框架。
当客户端程序发送第一个数据包到服务器的时候,服务器处理接收到的数据包后将回应给客户端的数据组包后在ACE_Svc_Handler派生类中调用this->putq(...)函数投递数据并注册写事件。数据成功地发送给客户端后,客户端接着给服务器发送第二个包。服务器处理第二个数据包的流程和处理第一个包的流程一样,然而,当再次调用this->putq(...)函数的时候,该函数并没有返回,似乎进入了死锁的状态。
奇怪的是同样的ACE5.5包和服务器程序代码放在debian下编译后却不会出现这样的情况。我猜想在redhat linux9.0下编译是不是有什么编译宏需要定义,而我没有给出定义。导致出现上述问题。请高手指点!谢谢!
[ 本帖最后由 lsxsoftr 于 2008-8-25 11:42 编辑 ]

最新回复
putq阻塞是有处理逻辑的,你能否跟着进去,看看阻塞到什么地方了。
SSL的那个我也没用过。