CAsyncSocket and Close()
John and Cecilia -- jandce@iglobal.net Thursday, November 07, 1996 Environment: VC++ 4.0/WIN95 I have derive a class from CAsyncSocket to catch the OnConnect(and others) messages. Everything is working excellently except for one thing. When I close the connection and attempt to connect to another site, I receive a WSAECONNREFUSED error message in my OnConnect() handler. If I terminate my program and start the program again, the connection phase works fine the first time. Subsequent connection attempts fail until I restart the program. I have tried the following: Constructor: FtpControl = new FtpSocket; FtpControl->Create(); Close Connection FtpControl->Close(); delete FtpControl; FtpControl = new FtpSocket; FtpControl->Create(); I have tried this with and with out the delete and new between the close and create calls. I understand that the destructor for CAsyncSocket automatically calls close. So I took out the call to close and get the same results. If I set up a call to close in my state engine, and wait for an OnClose message after calling Close(), I never receive an OnCLose() message, even though FD_CLOSE is a default for the Create() function. Any help would be greatly appreciated. Thanks. John Boehme http://www.iglobal.net/pub/JohnAndCe/webmap.htm
Doug Boone -- dboone@fasttax.com Monday, November 11, 1996 It could be a timing issue, network connections take a while to start and a while to break. Or it could be garbage left over from the last socket that isn't re-initialized so you should look at setting FtpControl to NULL after the delete and before the new so you'll get better stack trash. ---------- > From: John and Cecilia> To: MFC News Group > Subject: CAsyncSocket and Close() > Date: Thursday, November 07, 1996 7:56 AM > > Environment: VC++ 4.0/WIN95 > > I have derive a class from CAsyncSocket to catch the OnConnect(and others) > messages. Everything is working excellently except for one thing. When I > close the connection and attempt to connect to another site, I receive a > WSAECONNREFUSED error message in my OnConnect() handler. If I terminate my > program and start the program again, the connection phase works fine the > first time. Subsequent connection attempts fail until I restart the > program. > > I have tried the following: > > Constructor: > FtpControl = new FtpSocket; > FtpControl->Create(); > > Close Connection > FtpControl->Close(); > delete FtpControl; > FtpControl = new FtpSocket; > FtpControl->Create(); > > I have tried this with and with out the delete and new between the close > and create calls. I understand that the destructor for CAsyncSocket > automatically calls close. So I took out the call to close and get the same > results. > > If I set up a call to close in my state engine, and wait for an OnClose > message after calling Close(), I never receive an OnCLose() message, even > though FD_CLOSE is a default for the Create() function. > > Any help would be greatly appreciated. Thanks. > > John Boehme > http://www.iglobal.net/pub/JohnAndCe/webmap.htm
| Вернуться в корень Архива |