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); } }