/// <summary> /// outBuffer Client send message to server /// </summary> /// <param name="ar"></param> private void TCPCallBack(IAsyncResult ar) { OutBufferClient client = (OutBufferClient)ar.AsyncState; try { if (client.NetWork.Connected) { NetworkStream ns = client.NetWork.GetStream(); byte[] recdata = new byte[ns.EndRead(ar)]; if (recdata.Length > 0) { Array.Copy(client.buffer, recdata, recdata.Length); if (recdata.Length == 1) { if (recdata[0] == 0x01) { _outBuffIsFree = true; } else { _outBuffIsFree = false; } if (_outBuffIsFree != OutBuffIsFree) { OutBuffIsFree = _outBuffIsFree; if (OutBuffChanged != null) { OutBuffChanged.BeginInvoke(client.Name, (_outBuffIsFree), null, null);//async data output } } } client.NetWork.GetStream().Write(_sendData, 0, _sendData.Length); ns.BeginRead(client.buffer, 0, client.buffer.Length, new AsyncCallback(TCPCallBack), client); } else { client.DisConnect(); LogerHelper2.ToLog("outBuffer is disconnected now", 2); //outBuffer HeartBeatTimer.Stop(); //RobotoutBuffer Status.UpdateRobotoutBuffer Status("Disconnected"); //isoutBuffer onLine = false; lstClient.Remove(client); } } } catch (Exception ex) { LogerHelper2.ToLog("testmothod TCPCallBack catch exception " + ex.Message, 3); //RobotoutBuffer Status.UpdateRobotoutBuffer Status("Disconnected"); //outBuffer HeartBeatTimer.Stop(); client.DisConnect(); //isoutBuffer onLine = false; lstClient.Remove(client); } }
private bool Send(byte[] data, OutBufferClient client) { try { client.NetWork.GetStream().Write(data, 0, data.Length); } catch (Exception ex) { LogerHelper2.ToLog("methond outBuffer Server.Send catch exception :" + client.Name + ex.Message, 3); client.DisConnect(); return(false); } return(true); }