EldoS | Feel safer!

Software components for data protection, secure storage and transfer

TElSimpleSSLClient.Active still True after socket has disconnected

Posted: 10/11/2011 12:37:32
by matt garrett (Basic support level)
Joined: 10/11/2011
Posts: 7

After making an attempting and communicating back and forth, I'm attempting to test the disconnect so that if this happens, I can ensure that my application (using silverlight unfortunately) can properly reconnect without user intervention. In the sample, it shows while(TEISimpleSSLClient.Active {}

To test this, I disconnected the socket on my server side module, and verified the state thoroughly to ensure it actually is disconnected. The socket is cleaned up and disposed on the server end, however the .Active property is still reporting true. I then tried to do TEISimpleSSLClient.InternalSocket.State, as I noticed this switched from 0 to a 4 after a connection was made. However, the same is true of this value as it remains a 4 after it has been disconnected.

I also tried subscribing to the OnCloseConnection events, however, I don't seem to get any events raised on this, nor other event handlers which I've subscribed to. Thanks again for any help on this issue.
Posted: 10/11/2011 13:32:52
by Vsevolod Ievgiienko (Team)


Do I understand you right that you've closed a connection on server side and are surprised that TEISimpleSSLClient.Active on client side is still 'true'?

If yes then its normal because a state of TCP connection can be retrieved only if you try to make any activities with it.
Posted: 10/12/2011 09:09:39
by matt garrett (Basic support level)
Joined: 10/11/2011
Posts: 7

Yes, you are correct in my assumptions. I had thought that with the event and property that it would pick it up on it's own. If that is the case, I can easily detect this on my own by having background heart throbs on a timer between the server and client. Also, thanks again for giving a speedy response.
Posted: 10/12/2011 11:09:53
by matt garrett (Basic support level)
Joined: 10/11/2011
Posts: 7

Ok, now have a timer thread which sends heart throbs to the server. The problem now is, if I terminate the connection, I get the following when I attempt to send:

{System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host.
at SBSocket.TElSocket.SLProcessReceive(SocketAsyncEventArgs e)
at SBSocket.TElSocket.SocketArgs_Completed(Object Sender, SocketAsyncEventArgs e)
at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e)
at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncFailure(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)
at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)}

The issue sounds very similar to the issue reported here, only I am not getting it on the Open(): http://www.eldos.com/forum/read.php?FID=7&TID=3027&MID=16685&sphrase_id=371877#message16685

It sounds like this issue might have been fixed (although the one fixed here is for the connect, and and stacktrace in my case is for SLProcessReceive, but I am using the latest binaries from the site? I tried downloading the hard coded one you had mentioned in this post, but I can't use the license key which I am using from the sample found below:
Posted: 10/12/2011 11:59:33
by matt garrett (Basic support level)
Joined: 10/11/2011
Posts: 7

Disregard last question as well, I did not have the latest binaries. Had started looking into your project back in january, but got side tracked until now and thougth I had replaced the binaries with latest, and had not. After replacing them, the above is no longer an issue.



Topic viewed 1408 times

Number of guests: 1, registered members: 0, in total hidden: 0


Back to top

As of July 15, 2016 EldoS business operates as a division of /n software, inc. For more information, please read the announcement.

Got it!