Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 750
  • Last Modified:

IO Completion Port in Windows 2000

Hi
  I am developing client/server application. Now I have one server based on IO completion port. ie,
using CreateIoCompletionPort and GetQueuedCompletionStatus. One thread accept socket connection and
other worker threads wait for IO Completion in GetQueuedCompletionStatus.


 In Windows 2000 there is new method named, BindIoCompletionCallback() for IOCP. It use thread pooling.

 So I can use any of the two methos, ie either CreateIoCompletionPort() or BindIoCompletionCallback().
Which is better. What are the advantages/disadvantages....

    If using CreateIoCompletionPort() function the thread count is usually No. of Processor * 2. What
about BindIoCompletionCallback(). Does system limit the number of threads that run same time ?.

    My server will run only on Windows 2000.

    And my final doubt is how IIS and other high-end servers handle Asynchronous IO.

Thanks
sisimon
0
sisimon
Asked:
sisimon
1 Solution
 
job_sCommented:
Hi Sisi,

Please see this link .One sample is also available on this page.


http://www.codeproject.com/internet/iocp.asp
0
 
sisimonAuthor Commented:

I already seen this document ,It only explain BindIoCompletionCallback(). Not compare with CreateIoCompletionPort().
0
 
job_sCommented:
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
sisimonAuthor Commented:
Hi job_s,

   That document does not contain answer for my doubt..

Thanks
Sisimon
0
 
ambienceCommented:
BindIOCompletionCallback internally calls CreateIOCompletionPort passing it the FileHandle and the handle of an internal completion port.

The number of threads limits is the same with both functions howevere Bind** ensures that atleast one thread is available. Whereas with CreateIOCOmpletion you have to manage the threads yourself.

I say that Bind** version is better and easier to use, 'cause now the thread pool is managed by the system and not by you , the system dynamically shrinks or enlarges the pool size to cater for your requirements.

Using IOCompletionPort on the other hand is flexible enough , 'cause now the control is in your own hands, and as always a tradeoff between simplicity and flexibility.

0
 
DanRollinsCommented:
hi sisimon,
Are you still looking for help with this question?

-- Dan
0
 
griesshCommented:
Dear sisimon

I think you forgot this question. I will ask Community Support to close it unless you finalize it within 7 days. You can always request to keep this question open. But remember, experts can only help you if you provide feedback to their questions.
Unless there is objection or further activity,  I will suggest to split between

     "ambience and job_s"


If you think your question was not answered at all, you can explain here why you want to do this and post a request in Community support (please include this link) to refund your points. The link to the Community Support area is: http://www.experts-exchange.com/commspt/


PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
======
Werner
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now