Package cn.com.zjtelecom.smgp.server.sample

Source Code of cn.com.zjtelecom.smgp.server.sample.SampleServer$server

package cn.com.zjtelecom.smgp.server.sample;

import java.io.IOException;
import cn.com.zjtelecom.smgp.bean.Deliver;
import cn.com.zjtelecom.smgp.bean.Login;
import cn.com.zjtelecom.smgp.bean.Submit;
import cn.com.zjtelecom.smgp.protocol.Tlv;
import cn.com.zjtelecom.smgp.protocol.TlvId;
import cn.com.zjtelecom.smgp.server.Server;
import cn.com.zjtelecom.smgp.server.inf.ServerEventInterface;
import cn.com.zjtelecom.smgp.server.result.LoginResult;
import cn.com.zjtelecom.smgp.server.result.SubmitResult;
import cn.com.zjtelecom.smgp.server.sample.config.ServerAccountConfFromFile;
import cn.com.zjtelecom.smgp.server.sample.config.ServerAccountConfig;
import cn.com.zjtelecom.smgp.server.util.CheckValid;
import cn.com.zjtelecom.smgp.server.util.Display;
import cn.com.zjtelecom.util.Key;

public class SampleServer {

  private static ServerAccountConfig accountconfig;
  private static String ServerVersion = "3.0";

  private static class server implements ServerEventInterface {
    private Server serverSimulate;
    private ServerConsole serverConsole;

    public server(int port) {
      this.serverSimulate = new Server(this, port);
      this.serverSimulate.start();
      this.serverConsole = new ServerConsole(this);
      this.serverConsole.start();

    }

    public void SendDeliver(Deliver deliver) {
      this.serverSimulate.SendDeliver(deliver);
    }

    public LoginResult onLogin(Login login) {
      Display.DisplayLogin(login, accountconfig);
      if (accountconfig.getPassword(login.Account) == null) {
        return (new LoginResult(52, "", ServerVersion, ""));
      } else if (Key.checkAuth(login.AuthenticatorClient, login.Account,
          accountconfig.getPassword(login.Account), String
              .valueOf(login.timestamp)) == false) {
        return (new LoginResult(21, "", ServerVersion, ""));
      } else if (!accountconfig.getIpAddress(login.Account).equals(
          login.ipaddress)) {
        return (new LoginResult(20, "", ServerVersion, ""));
      }

      return (new LoginResult(0,
          accountconfig.getPassword(login.Account), ServerVersion,
          accountconfig.getSPNum(login.Account)));
    }

    public SubmitResult onSumit(Submit submit, String account) {
      int checkvalue = 0;
      Display.DisplaySubmit(submit);

      // check SPId valid
      if (accountconfig.getSPId(account) != null) {
        int findTlv = 0;
        Tlv[] otherTlv = submit.getOtherTlvArray();
        for (int i = 0; i < otherTlv.length; i++) {
          if (otherTlv[i].Tag == TlvId.MsgSrc) {
            if (otherTlv[i].Value.equals(accountconfig
                .getSPId(account))) {
              findTlv = 1;
            } else {
              checkvalue = 8200;
            }
          }
        }
        if (findTlv == 0)
          checkvalue = 8200;

      }

      // check SrcTermid valid
      if ((submit.getSrcTermid())
          .indexOf(accountconfig.getSPNum(account)) != 0)
        checkvalue = 46;
      // check Other Valid
      if (checkvalue == 0)
        checkvalue = CheckValid.CheckSubmit(submit);
      System.out.println("SubmitResult:" + checkvalue);
      return new SubmitResult(checkvalue);
    }

    public void ListConnected() {
      Display.DisplayClientList(this.serverSimulate.getClientlist(),
          accountconfig);

    }

    public void Exit() {
      this.serverSimulate.stop();
      this.serverConsole.stop();
     
     
    }

  }

  public static void main(String[] args) {
    try {
      accountconfig = new ServerAccountConfFromFile();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    server sv = new server(8890);
  }

}
TOP

Related Classes of cn.com.zjtelecom.smgp.server.sample.SampleServer$server

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.