[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

What is Winsock Overlapped I/O?

Posted on 2009-03-29
6
Medium Priority
?
1,039 Views
Last Modified: 2013-11-13
Hi,

What is Overlapped I/O as available for sockets in Winsock?

How does it work and why is it more efficient than other i/o models?
0
Comment
Question by:nanderEire
  • 2
  • 2
  • 2
6 Comments
 
LVL 10

Accepted Solution

by:
Marcjev earned 500 total points
ID: 24014711
You should see overlapped I/O as a kind of assynchronious IO. In your program you start a function call and it returns immediatly.
So WSASend en WSAReceive will return immediatly. You will be able to receive and event when the opperation is complete.
As you can do other things in the time the system is normally in the blocking call, you cal do more efficient programming, like handling the data received in a previous opperation.
But although it has to potential to be more efficient, it's up to you, the programmer, to actually achieve the gain, by programming a more complex program.
0
 
LVL 10

Expert Comment

by:Marcjev
ID: 24014717
Also, when handling multiple connections, you could handle more connections as they are non blocking. So you could use the cpu more effectively. If you have a one to one connection the gain is not as much as having a many to one connection.
0
 

Author Comment

by:nanderEire
ID: 24016611
Great.

So what is the difference between the operation of an i/o overlapped and a socket placed in non-blocking mode?
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.

 
LVL 5

Assisted Solution

by:migoEX
migoEX earned 500 total points
ID: 24016755
With non-blocking socket your "send/recv" will fail with WOULD_BLOCK error code, and you'll have to retry the operation later (probably using some sort of "select"). Buth the asynchronous function continues in the background, and you can later get a notification that it has completed/failed (in form of Event or callback).
0
 

Author Comment

by:nanderEire
ID: 24016929
So you can just keep queueing up the sends without checking the return value to see if each was successful?
0
 
LVL 5

Expert Comment

by:migoEX
ID: 24017355
Yes. I assume there's some limit, of cause, but in theory you can sedn many requests whithout waiting for any to complete.
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!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you haven’t already, I encourage you to read the first article (http://www.experts-exchange.com/articles/18680/An-Introduction-to-R-Programming-and-R-Studio.html) in my series to gain a basic foundation of R and R Studio.  You will also find the …
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
Suggested Courses
Course of the Month19 days, 8 hours left to enroll

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question