⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 receiveserveryx.java

📁 sp最新短信API(综合网关)
💻 JAVA
字号:
package com.wayout.wayoutsp.operation.packageYX;

/**
 * <p>Title: </p>
 * <p>Description: 短信互动平台</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: wayoutcom</p>
 * @author dufs@wayoutcom.com
 * @version 1.0
 */
import java.net.*;
import java.io.*;
import java.util.*;
import com.wayout.wayoutsp.publics.*;
import com.wayout.wayoutsp.operation.*;

public class receiveServerYX
    extends Thread {
  static final int serverPort = 1121; //服务端端口
  static final String clientIp = "134.159.120.43"; //对方服务端端口
  private ServerSocket mysvrsock; //本地服务socket
  private boolean myShutdownFlag = false; //管理器关闭标志
  public static Thread svrCmppThread; //服务线程

  public receiveServerYX() {
    setupCmppServer(serverPort);
  }

  /**
   *
   * @param port
   * @return
   */
  public boolean setupCmppServer(int port) {
    try {
      mysvrsock = new ServerSocket(port, 200);
      svrCmppThread = new Thread(super, "TBServerThread");
      svrCmppThread.start();
      return true;
    }
    catch (Exception e) {
      System.out.println("setupTBServer Exception" + e);
      PublicConstants.writeLog.info("setupTBServer Exception" + e);
      return false;
    }
  }

  /**
   * 主函数
   */
  public void run() {
    int num = 1;
    try {
      int deliverNum = 0;
      while (!myShutdownFlag) {
        Socket socket = mysvrsock.accept();
        if (socket.getInetAddress().getHostAddress().equals(clientIp)) {
          ChildThreadDeliver thread1 = new ChildThreadDeliver(socket);
          thread1.start();
        }
      }
      mysvrsock.close(); //out of while
    }
    catch (Exception e2) {
      System.out.println("setup server serverIp Exp::" + e2.toString());
      PublicConstants.writeLog.info("setup server serverIp Exp::" + e2.toString());
      try {
        mysvrsock.close();
        sleep(60 * 1000);
        setupCmppServer(serverPort);
      }
      catch (Exception e3) {}
    }
  }
}

//
class ChildThreadDeliver
    extends Thread {
  private Socket conn;
  private InputStream myinputstream;
  private OutputStream myoutputstream;
  public DataInputStream dataInStream;
  public DataOutputStream dataOutStream;
  private short headCmdID;

  public ChildThreadDeliver(Socket sockets) {
    conn = sockets;
  }

  public void run() {
    try {
      myinputstream = conn.getInputStream();
      myoutputstream = conn.getOutputStream();
      dataInStream = new DataInputStream(myinputstream);
      dataOutStream = new DataOutputStream(myoutputstream);
    }
    catch (Exception e) {
      System.out.println("ChildThreadDeliver(Socket): " + e.toString());
      PublicConstants.writeLog.info("ChildThreadDeliver(Socket): " + e.toString());
    }
    SendDataBean submit = new SendDataBean();
    try {
      int dataSize = dataInStream.readShort();
      headCmdID = dataInStream.readShort();
      PublicConstants.writeLog.info("dataSize===="+dataSize);
      PublicConstants.writeLog.info("headCmdID===="+headCmdID);
      if (headCmdID == 0x0083) {
        submit.operateSeqId = dataInStream.readInt();
        //modified by dufs@wayoutcom.com 2004-4-30
//        byte[] msgServiceType = new byte[10];
//        dataInStream.read(msgServiceType);
        submit.servieceType = "m001";//new String(msgServiceType);
        submit.feeType = 1;//dataInStream.readByte();
        submit.infoFee = 0;//dataInStream.readInt();
        submit.srcAddr = readString(dataInStream);
        submit.feeTerminalId = readString(dataInStream);
        submit.addDestAddr(readString(dataInStream));
        submit.linkId = readString(dataInStream);
        submit.sendData = readString(dataInStream);
        PublicConstants.writeLog.info("Receive a message from 134.159.120.43:1122");
        PublicConstants.writeLog.info("submit.srcAddr=="+submit.srcAddr);
        PublicConstants.writeLog.info("submit.feeTerminalId=="+submit.feeTerminalId);
        PublicConstants.writeLog.info("submit.sendData=="+submit.sendData);
        PublicConstants.writeLog.info("submit.linkId=="+submit.linkId);

        //给应答
        dataOutStream.writeShort(9);
        dataOutStream.writeShort(0x0084);
        dataOutStream.writeInt(submit.operateSeqId);
        dataOutStream.writeByte(0);
        OperManager.getInstance().sendShortMessage(submit);
      }
      else {
        System.out.println("have recieved erro cmd!!!");
        PublicConstants.writeLog.info("have recieved erro cmd!!!!");
      }

    }
    catch (Exception ex) {
      System.out.println("get a submit exp:" + ex.toString());
      PublicConstants.writeLog.info("get a submit exp:" + ex.toString());
    }

  }

  private static String readString(DataInputStream inStream) {
    byte[] readByte = new byte[180];
    int i = 0;
    try {
      while (true) {
        readByte[i] = inStream.readByte();
        if (readByte[i] == '\0') {
          break;
        }
        i++;
        if (i >= 180) {
          return "";
        }
      }
    }
    catch (IOException e) {
      return "Erro";
    }
    String result = new String(readByte, 0, i);
    return result;
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -