去年搞了1个月的IOCP发现,异常难控制。
今年把自己的同时写的epoll拿出来使用,发现总是发一段时间后,很容易丢包。照成客户机卡住等待recv。但是本地测试却没有问题。
我也怀疑高效的epoll EL(Edge Triggered)是有bug的,最后发现不知道是不是bug,如果接收未接收干净,确实会影响发送。 虽说是异步发送,但确实数据已经提交出去,已经写入内核缓冲区。 这里的发送我并没有直接提交到队列,有EPOLLOUT发送,而是直接send,虽然很少这样用,但是我觉得很多时候不必要用通知的方式,增加内核负担。
C和C++设计框架,模式很多不一样。但是我觉得这么多开源框架没有必要自己写了。至少短期内很少能写出个稳定的