Example #1
0
 /// <summary>
 /// 发送数据到指定终端(无回调函数)
 /// </summary>
 /// <param name="sendObj"></param>
 public void Send(SendClientObject sendObj)
 {
     Send(sendObj, null);
 }
Example #2
0
 /// <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);
             }
         }
     }
 }
Example #3
0
 /// <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);
     }
 }