proactor模式下,如何知道客户端断开?
首先说明,并不是要求实时得到客户端断开的问题。:)在reactor下,客户端断开的时候,handle_close可以处理断开消息,
但是在Proactor下,如何得知客户端已经断开连接?是在哪个回调里处理呢? 我试了handle_read_stream,在客户端断开的时候,也并没有消息。这一点,和asio貌似是不同的。
ACE的Proactor下如何知道客户端断开?谢谢。 你可以在本站查到解答。基本是这样的:
客户端断开,你可以在handle_read_stream收到错误信息。但是前提是,你提前预读了数据。 谢谢回答
我也是查了不少网络的资料,结果都没有错误处理部分,才有此疑问
看来是少了预读数据的处理
我再去查查,如果查不到,麻烦您不宁赐教。 不停read,直到handle_read_stream读到result为错误或者0 size数据,表示对方主动close 此问题已经解决,谢谢各位
但同时又有一个新的问题,就是如何得知有客户端连接上来?
我现在测试的是ACE自带的例子proactor test,这个例子只有在客户端发送数据的时候,才会触发到open和handle_read_stream
如果客户端不主动发数据就无法得之客户端连上来
请教了,谢谢! 当然能知道了。Proactor的acceptor里面会创建链接处理对象的。看看C++网络编程卷2,一看便知。
页:
[1]