/// <summary> /// 发送数据到指定终端(无回调函数) /// </summary> /// <param name="sendObj"></param> public void Send(SendClientObject sendObj) { Send(sendObj, null); }
/// <summary> /// 发送数据到指定终端 /// </summary> /// <param name="sendObj"></param> /// <param name="_sendCallback">发送后的回调函数</param> public void Send(SendClientObject sendObj,AsyncCallback _sendCallback) { lock (sendObj.stateObject.sendLockObj) { var data = sendObj.txData.GetData(); try { sendObj.stateObject.workSocket.BeginSend(data, 0, data.Length, SocketFlags.None, p => { try { sendObj.stateObject.workSocket.EndSend(p); sendObj.IsSendOK = true; } catch(Exception ex) { sendObj.IsSendOK = false; sendObj.ErrMsg = ex.Message; if (ClientErrorEvent != null) { ClientErrorEvent.BeginInvoke(sendObj.stateObject, ex.Message, null, null); } } if (_sendCallback != null) { _sendCallback.BeginInvoke((IAsyncResult)sendObj, null, null); } }, sendObj); } catch (Exception ex) { sendObj.IsSendOK = false; sendObj.ErrMsg = ex.Message; if (ClientErrorEvent != null) { ClientErrorEvent.BeginInvoke(sendObj.stateObject, ex.Message, null, null); } if (_sendCallback != null) { _sendCallback.BeginInvoke((IAsyncResult)sendObj, null, null); } } } }
/// <summary> /// 发送数据到指定终端 /// </summary> /// <param name="obj"></param> /// <param name="txdata"></param> /// <param name="sendCallback">发送后的回调函数</param> public void Send(ClientFather client, TxData txdata, AsyncCallback sendCallback) { lock (obj.sendLockObj) { SendClientObject sendObj = new SendClientObject { ID = Guid.NewGuid().ToString(), client = client, txData = txdata }; Send(sendObj, sendCallback); } }