public void Dispose() { try { if (socket.Connected) { socket.Disconnect(false); } ConnectedStateChanged?.Invoke(socket.Connected); socket.Dispose(); } catch (ObjectDisposedException) { } }
public CommunicationTool(string networkHost, ushort networkPort) { NetworkHost = networkHost; NetworkPort = networkPort; // 连接 _tcpClient.OnConnect += ss => { ConnectedStateChanged?.Invoke(true); return(HandleResult.Ok); }; // 关闭 _tcpClient.OnClose += (ss, enOperation, errorCode) => { ConnectedStateChanged?.Invoke(false); return(HandleResult.Ok); }; // 接收 _tcpClient.OnReceive += (ss, bytes) => { // 获取字符串数据 var strData = Encoding.ASCII.GetString(bytes).Substring(1, bytes.Length - 2); LogHelper.Info($"Received Data: {networkHost} >>> {strData}"); // 分解字符串 var infos = strData.Split(new[] { '_' }, StringSplitOptions.RemoveEmptyEntries); var index = infos[0]; var codes = string.Join(",", infos.Skip(1).ToArray()); // 事件回调 DataAvailable?.BeginInvoke(index, codes, null, null); return(HandleResult.Ok); }; }
protected virtual void OnConnectedStateChanged() { Logger.Info("OnConnectedStateChanged"); ConnectedStateChanged?.Invoke(this, EventArgs.Empty); }