From 78bb5ea1fa3181818afc34a22ebb11730b322b1a Mon Sep 17 00:00:00 2001 From: Michele Cattafesta Date: Fri, 26 Aug 2016 12:29:23 +0200 Subject: [PATCH] plc: implemented shutdown of the socket correctly (Issue #29). Signed-off-by: Michele Cattafesta --- S7.Net.Core/SocketClient.cs | 6 +++++- S7.Net/PLC.cs | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/S7.Net.Core/SocketClient.cs b/S7.Net.Core/SocketClient.cs index d704e26..a207f85 100644 --- a/S7.Net.Core/SocketClient.cs +++ b/S7.Net.Core/SocketClient.cs @@ -143,11 +143,15 @@ namespace S7.Net return response; } + public void Shutdown(SocketShutdown how) + { + _socket.Shutdown(how); + } + public void Close() { if (_socket != null) { - _socket.Shutdown(SocketShutdown.Both); _socket.Dispose(); _socket = null; } diff --git a/S7.Net/PLC.cs b/S7.Net/PLC.cs index f546dcb..3901f18 100644 --- a/S7.Net/PLC.cs +++ b/S7.Net/PLC.cs @@ -242,6 +242,7 @@ namespace S7.Net { if (_mSocket != null && _mSocket.Connected) { + _mSocket.Shutdown(SocketShutdown.Both); _mSocket.Close(); } } @@ -1096,6 +1097,7 @@ namespace S7.Net if (_mSocket.Connected) { //Close() performs a Dispose on the socket. + _mSocket.Shutdown(SocketShutdown.Both); _mSocket.Close(); } //((IDisposable)_mSocket).Dispose();