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);
            };
        }
Пример #2
0
 protected virtual void OnDataAvailable()
 {
     DataAvailable?.BeginInvoke(this, Target, EndEventInvoke, DataAvailable);
 }