How to disconnect a TCP connection immediately?

Hi all, I'm writing a multithread web crawler for downloading images from the web. Each thread do the same thing: Connect to a web site, seek images and download them. And certainly it'll block when connecting to the remote server since I use block TCP mothed in each thread. So the problem comes: My program allows users to cancel downloading. It's really a headache when the thread is blocking since I can not notify that thread to end its work when it's  downling or trying to build a connection to the remote server. How can I close all threads when users' trying to cancel downloading? Should I kill the thread in block? That's is the last choice if no other good solution since kill a thread will cause many problems, such as memory leak. Any one gives me a piece of hint? Thanks in advance.
Wang
wang1stAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

aamironlineCommented:
hi,

       just pull the network cable withing less then a second. you will immidly get result...........


ha ha ha ..... just kidding ;)


well you should use closesocket(opensocket) api to close the winsock handle by passing open socket. thats it.


cheers
m aamir maniar

0
proskigCommented:
I agree that probably killing threads is not a very good idea, because for example you need to properly save files you have downloaded. As a better idea: you can use WSAEventSelect model and when you do WSAWaitForMultiple event, then you can add your own event. When you want to gracefully close download process, signal that event.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming Languages-Other

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.