Hi, first of all, i apologize in advance if my questions aren't very clear, so i'll do my best. I've done some networking in the past using c++, so i just want to point out that im not a noob just starting out, but i got some questions that i wanted to ask for a little while now.
1-There's 3 way i know of to work with sockets, blocking, non-blocking, and windows messages, but they seem to be all intermingle altogether. I mean, i would really like to see a good tutorial explaining each of these case in a clear manner but can't seem to find any. In fact, i got all of these to work in different project, but often, by lengthy trial and error, until it worked, leaving me a bit confused now that i haven't done some for a while.
2-One of my project is a program similar to VNC, letting me control the computer of another person, once the other accept the connection. It work flawlessly, i can do whatever i want with it, but somehow i had to use some kind of syncronisation for it to work properly, especially in the screenshot part, let me explain.
-The client send a screenshot request to the server
-The server generate and send the screenshot to the client, but wait for another request before processing the next one
-The client recieve the screenshot, and the process repeat itself until the connection is closed
I had to do it this way otherwise the server would literally flood it's tcp windows and ran out of virtual memory, because the clien wasn't able to receive the data fast enough. In the task manager, the size of the swap file would go higher and higher until the server crashed. So the question is, am i doing it the right way with the current algoritm above, or am i doing it wrong, because it dosen't seem to be the most effective way of doing it, but it work.
Note: Im using asyncronous sockets with manual pooling in this project (ie: without using windows messages). I would like to post the code, but the program is huge, couple thousands lines of code... and multithreaded, i don't think it would be usefull.
Hope i've been clear enough.
Tough?