Page 1 of 1

how to use smpp client dll in windows service

Posted: Fri Dec 30, 2016 9:46 am
by murali
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.

Re: how to use smpp client dll in windows service

Posted: Wed Jan 18, 2017 4:43 pm
by alt
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; }
    }