Solved

Winsock : How do I know when other host closes connection with me?

Posted on 1998-12-18
9
183 Views
Last Modified: 2010-04-15
Hello,

I'm beginner to Winsock programming. I wrote a "chat" program. It works but I want to know whenever the connection is closed by other host. For now, I check this by trying sending something to other host. If I can send without any error then it still alives. That's not a good and convenient methode.

Can anyone show me better methode to verify a connection without sending?
For instance something like getting the state of a connection.

Thank you.
0
Comment
Question by:toannds
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
9 Comments
 
LVL 2

Accepted Solution

by:
rdelfino earned 50 total points
ID: 1255285

There's another way. You try recv().

If the connection is no longer alive you will get 0 bytes received
or an error.

I hope it helps

Reginaldo

0
 
LVL 32

Expert Comment

by:jhance
ID: 1255286
rdelfino,

Wrong answer.  Just because recv() returns 0 bytes, doesn't mean the connection has closed.  There just may be 0 bytes available at that time.

Under Windows, the right way to do it is to use WSAAsyncSelct() and specify the FD_CLOSE event.  If WSAGETSELECTERROR returns 0 for the FD_CLOSE event, then the socket was closed gracefully.  If an error value of WSAECONNRESET is returned, the socket was aborted.
0
 

Author Comment

by:toannds
ID: 1255287
Thanks, I'll try...
0
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!

 
LVL 32

Expert Comment

by:jhance
ID: 1255288
It's also too bad you accepted an incorrect answer...
0
 

Author Comment

by:toannds
ID: 1255289
Thanks jhance!

Now I have completed my program with new concept: event notifications. It works perfectly. When other host close connection, I receive immediately FD_CLOSE.
0
 
LVL 32

Expert Comment

by:jhance
ID: 1255290
Alas, it's too bad you accepted an incorrect answer...
0
 

Author Comment

by:toannds
ID: 1255291
I don't understand what you said. My program used WSAAsyncSelect() and worked well. I wanna give you more points :-)
0
 
LVL 32

Expert Comment

by:jhance
ID: 1255292
You didn't give ME any points.  You accepted rdelfino's incorrect answer rather than rejecting it.

So he gets the points and I don't.
0
 

Author Comment

by:toannds
ID: 2026483
I'm so sorry jhance.

For a long time I could not access to this site due to the stupid firewalls of my country. I was a beginner to this forum at that time so I didn't know clearly how to give you points. And by accident we meet again at my question

http://www.experts-exchange.com/jsp/qShow.jsp?ta=mfc&qid=10202631 

Now I know my mistake so I wanna give you more points in that question.

Please forgive me.
0

Featured Post

Independent Software Vendors: 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

Suggested Solutions

Title # Comments Views Activity
How to align numbers in C using the %d 2 117
Problem to scan all sheets 3 132
c++ getting the first 10 characters of a char* string 11 110
Line meaning 9 96
Have you thought about creating an iPhone application (app), but didn't even know where to get started? Here's how: ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Important pre-programming comments: I’ve never tri…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
The goal of this video is to provide viewers with basic examples to understand opening and writing to files in the C programming language.
The goal of this video is to provide viewers with basic examples to understand how to use strings and some functions related to them in the C programming language.

737 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