小弟最近在搞一个网络服务器,我看了网络里的好几种类型都觉的不怎么好,我想用完全端口来做,但是我对完全端口不怎么了解啊??那位大哥,高人知道完全端口是个什么东西提示一下啊,代码我有,但是我不知道他是怎么运作的,能不能帮我说一下他的工作原理,在这我先谢谢各位前辈!~~~~

解决方案 »

  1.   

    弱弱地问一下下,什么是完全端口?完成端口,一种异步I/O机制。通过用户递交操作任务,后台检查任务的可执行性,然后挡回任务或者接收任务,并执行任务,(在后台执行任务的过程中,前端可以执行其它事务)后台完成(可能成功也可能失败)之后,产生一个完成通知(成功通知或者失败通知),前端可以通过GetQueuedCompletedStatus来查询并取得相应的通知。
      

  2.   

    完成端口,就是你的读写操作都以OVERLAPPED的方式交给操作系统.然后你需要有一个或多个完成端口线程.在这个线程里你调用GetQueuedCompletionStatus.得到每一个OVERLAPPED操作的结果,根据操作结果再进行不同的操作.例如发送成功的话,可以把发送缓冲区释放掉了,如果是接收成功的话,可以再次递交一个新的OVERLAPPED读操作.
      

  3.   

    采用boost.asio吧,它封装了Windows平台的完成端口和*nix的aio,本身基于ACE的proactor模式,非常优秀。