Ejemplo n.º 1
0
        public static void ReadCallback(IAsyncResult ar)
        {
            ILogger logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();

            StateObject state   = (StateObject)ar.AsyncState;
            Socket      handler = state.workSocket;

            int bytesRead = handler.EndReceive(ar);

            if (bytesRead > 0)
            {
                var response = new StringBuilder(1024);
                response.Append(BitConverter.ToString(state.buffer, 0, bytesRead)).Replace("-", " ");
                state.sb = response;
                logger.Info("receive data:" + response.ToString());
                Task.Run(async() => { await _helper.OnReceiveCommand(response.ToString()); });

                //继续监听
                handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);
            }
        }