private void BtnConnectIO_Click(object sender, RoutedEventArgs e) { if (IOSocket == null) { IOSocket = new SocketManager("127.0.0.1:10001"); IOSocket.ConnectState += IOSocket_ConnectState; if (IOSocket.Connect()) { IOSocket.DataReceived += IOSocket_DataReceived; IOSocket.StartReceiveAsync(); } } else { IOSocket.StopReceiveAsync(); IOSocket.Close(); } }
/// <summary> /// Dispose /// </summary> public void Dispose() { try { if (IOSocket != null) { IOSocket.Shutdown(SocketShutdown.Both); } _receiveArgs.Dispose(); _sendArgs.Dispose(); _sendQueue.Clear(); _receiveQueue.Clear(); _decodeTempList.Clear(); if (_packageParser != null) { _packageParser.Dispose(); } _isSending = false; _isReceiving = false; } catch (Exception) { // throws if client process has already closed, so it is not necessary to catch. } finally { if (IOSocket != null) { IOSocket.Close(); IOSocket = null; } } }