コード例 #1
0
ファイル: SgipSmsClient.cs プロジェクト: lxllh/SmsProtocols
        private async Task DoReceiveBind(SmsServerSession session, SgipMessageBind message)
        {
            var response = new SgipMessageBindResponse()
            {
                SequenceId1 = message.SequenceId1, SequenceId2 = message.SequenceId2, SequenceId3 = message.SequenceId3
            };

            var userName = this.Configurations.UserName;
            var password = this.Configurations.Password;

            var u = message.LoginName;
            var p = message.Password;

            //send the response
            if (userName == u && password == p)
            {
                response.Status         = 0; //SUCCESS
                session.IsAuthenticated = true;
            }
            else
            {
                response.Status = 1; //FAILED;
            }

            await session.SendAsync(response);
        }
コード例 #2
0
ファイル: SgipSmsClient.cs プロジェクト: lxllh/SmsProtocols
        protected override async Task <bool> DoConnectAsync()
        {
            var config   = this.Configurations;
            var userName = config.UserName;
            var password = config.Password;

            var sids = this.SequenceId;

            var m = new SgipMessageBind()
            {
                SequenceId3 = sids[0],
                SequenceId2 = sids[1],
                SequenceId1 = sids[2],
                LoginName   = userName,
                Password    = password
            };

            await this.Send(m);

            var evt = new AutoResetEvent(false);

            this.ConnectEvent = evt;
            TimeSpan timeout = TimeSpan.FromSeconds(10);

            evt.WaitOne(timeout);

            return(this.Status == SmsClientStatus.Connected);
        }
コード例 #3
0
        public NetworkMessage CreateNetworkMessage(BinaryReader reader)
        {
            uint         byteCount = reader.NetworkReadUInt32();
            SgipCommands command   = (SgipCommands)reader.NetworkReadUInt32();
            SgipMessage  message   = null;

            uint sid3 = reader.NetworkReadUInt32();
            uint sid2 = reader.NetworkReadUInt32();
            uint sid1 = reader.NetworkReadUInt32();

            switch (command)
            {
            case SgipCommands.BindResponse:
                message = new SgipMessageBindResponse();
                break;

            case SgipCommands.Bind:
                message = new SgipMessageBind();
                break;

            case SgipCommands.Unbind:
                message = new SgipMessageUnbind();
                break;

            case SgipCommands.UnbindResponse:
                message = new SgipMessageUnbindResponse();
                break;

            case SgipCommands.Submit:
                message = new SgipMessageSubmit();
                break;

            case SgipCommands.SubmitResponse:
                message = new SgipMessageSubmitResponse();
                break;

            case SgipCommands.Deliver:     //receive sms
                message = new SgipMessageDeliver();
                break;

            case SgipCommands.DeliverResponse:
                message = new SgipMessageDeliverResponse();
                break;

            case SgipCommands.Report:
                message = new SgipMessageReport();
                break;

            case SgipCommands.ReportResponse:
                message = new SgipMessageReportResponse();
                break;

            case SgipCommands.None:
            default:
                message = new SgipMessage();
                break;
            }

            if (message != null)
            {
                message.Command     = command;
                message.ByteCount   = byteCount;
                message.SequenceId1 = sid1;
                message.SequenceId2 = sid2;
                message.SequenceId3 = sid3;
                message.NetworkRead(reader);
            }

            return(message);
        }