how to use smpp client dll in windows service

.NET library for SMPP protocol
Locked
murali
Posts: 1
Joined: Fri Dec 30, 2016 8:59 am

how to use smpp client dll in windows service

Post by murali » Fri Dec 30, 2016 9:46 am

Hi,

i want to use inetlab.smpp client dll in a windows service, which was written in c#.
can any one please provide the sample code how to use the client connection in windows service.
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Re: how to use smpp client dll in windows service

Post by alt » Wed Jan 18, 2017 4:43 pm

Hi murali,

Here is simplified example:

Code: Select all

 public class SmppClientWindwsService : ServiceBase
    {
        private SmppClientSettings _settings;

        private readonly SmppClient _client;
        private readonly ILog _log;
        private readonly FileLogger _logger;

        public SmppClientWindwsService()
        {
            ServiceName = "SMPPClient";

            _logger = new FileLogger("client.log");

            LogManager.SetLoggerFactory(loggerName => _logger.GetLog(loggerName));

            _log = LogManager.GetLogger(GetType().Name);

            _client = new SmppClient();
            _client.evConnected += ClientOnConnected;
            _client.evBindComplete += ClientOnBindComplete;
            _client.evDeliverSm += ClientOnDeliverSm;
        }

        private void ClientOnBindComplete(object sender, BindResp data)
        {
            
        }

        private void ClientOnConnected(object sender, bool bSuccess)
        {
            _log.Info(string.Format("Client connected to {0}", _client.RemoteEndPoint));
            (sender as SmppClient).BindAsync(_settings.Username, _settings.Password);
        }

        private void ClientOnDeliverSm(object sender, DeliverSm data)
        {
           
        }

        protected override void OnStart(string[] args)
        {
            _settings = LoadSettings();
            _logger.Start();
            _client.ConnectAsync(_settings.ServerAddress, _settings.ServerPort);
           
        }

        private SmppClientSettings LoadSettings()
        {
            return new SmppClientSettings
            {
                
            };
        }

        protected override void OnStop()
        {
            _log.Info(string.Format("Client disconnected from {0}", _client.RemoteEndPoint));

            _client.Disconnect();
            
            _logger.Shutdown();

        }


    }

    public class SmppClientSettings
    {
        public string ServerAddress { get; set; }
        public int ServerPort { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
    }
Locked