Early in the Receive method of the Receiver class, there is a check for a null or unconnected socket that looks like this:
public void Receive(DataFrame frame = null)
if (frame == null)
frame = new DataFrame();
var buffer = new byte[BufferSize];
if (Socket == null || !Socket.Connected)
I'm thinking the method should return immediately after calling the Disconnected method in this case, rather than proceeding to call the AsyncReceive method on the socket. Am I wrong?