Ejemplo n.º 1
0
            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());
            }
Ejemplo n.º 2
0
        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;
                        }
                    }
                }
            }
        }