private void Send(IConnectionSocket socket, IPEndPoint remoteEndPoint, ShareClientData shareClientData) { try { socket.Send(remoteEndPoint, shareClientData.ToByte()); } catch (Exception ex) { Throw(remoteEndPoint, $"Fail Send. {ex.Message}", ex); } _Logger.Send(remoteEndPoint, shareClientData.ToByte()); }
protected void SendShareClientData(ShareClientData clientData) { if (stopApplicationData && clientData.Header.DataType == SendDataType.Application) { _Manager.Logger.Info($"Stop Application or ShareClientData Convert Fail or Type {clientData.Header.DataType}"); return; } var sendData = clientData.ToByte(); if (!_Manager.PreSendDataSize(sendData.Length)) { _Manager.Logger.Info($"Dont't Allow Size of Send Byte : {sendData.Length}"); return; } int count = 0; while (_Socket.IsOpen) { try { _Socket.Send(sendData); Thread.Sleep(1); break; } catch (Exception ex) { _Manager.Logger.Error($"Sokect Send Throw Exception, Socket IsOpen : {_Socket.IsOpen}", ex); if (_Socket.IsOpen) { _Manager.Logger.Error($"Exception Throw Count : {count + 1 }, RetryCount: {_Manager.RetryCount}", ex); if (++count > _Manager.RetryCount || _Manager.HandleException(ex)) { var se = new ShareClientException(clientData.Header, ex.Message, ex); _Manager.Logger.Error($"Throw Exception.", se); throw se; } } } } }