/// <summary> 向客户端发送数据,最基础的发送 </summary> override internal void Send(StateBase stateBase, byte[] data) { if (stateBase == null) { return; } StickPackage.EncryptionPackage(ref data); //MessageBox.Show(data.Length.ToString()+"你好"+data[9].ToString()); try { stateBase.WorkSocket.BeginSend(data, 0, data.Length, 0, new AsyncCallback(SendCallback), stateBase); } catch (Exception Ex) { int i = Ex.Message.IndexOf("远程主机强迫关闭了一个现有的连接"); if (i != -1) { TcpState stateOne = IPEndPointToState(stateBase.IpEndPoint); socketRemove(stateOne, Ex.Message); } } }
/// <summary> /// 当Tcp收到数据全部在这里处理;也是数据的第一次处理 /// </summary> /// <param name="stateOne">TcpState</param> /// <param name="reciverByte">数据</param> internal void TcpDateOne(TcpState stateOne, byte[] reciverByte) { stateOne.HeartTime = DateTime.Now; List <byte[]> listDate = StickPackage.DecryptPackage(reciverByte, ref stateOne.Residualpackage); foreach (byte[] date in listDate) { StateCode statecode = ReceiveDateDistribution.Distribution(date); TcpCodeManage(stateOne, statecode); } }
/// <summary> 向服务器发送数据,最基础和原始的 </summary> override internal void Send(StateBase stateBase, byte[] data) { if (stateBase == null) { return; } Socket handler = stateBase.WorkSocket; StickPackage.EncryptionPackage(ref data); try { handler.BeginSend(data, 0, data.Length, 0, new AsyncCallback(SendCallback), handler); } catch { } }