diff --git a/Net/samples/EchoServer/src/EchoServer.cpp b/Net/samples/EchoServer/src/EchoServer.cpp index 6bf18109c..03fdfd2c7 100644 --- a/Net/samples/EchoServer/src/EchoServer.cpp +++ b/Net/samples/EchoServer/src/EchoServer.cpp @@ -111,13 +111,15 @@ public: void onSocketReadable(const AutoPtr& pNf) { - // some socket implementations (windows) report available - // bytes on client disconnect, so we double-check here - if (_socket.available()) + int len = _socket.receiveBytes(_fifoIn); + if (len > 0) { - int len = _socket.receiveBytes(_fifoIn); _fifoIn.drain(_fifoOut.write(_fifoIn.buffer(), _fifoIn.used())); } + else + { + delete this; + } } void onSocketWritable(const AutoPtr& pNf)