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

📄 commsocket.java

📁 利用JAVA采用网络通讯的例子,支持weblogic及websphere
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      while (true) {
        m_RecAvailableNum = m_InputStream.available();
        if (m_RecAvailableNum > 0 &&
            m_RecAvailableNum <= CollectorDefine.MAX_BYTE) {
          bytes = m_InputStream.read(m_pRecBuffer);
          m_RecNum = bytes;
          break;
        }

        try {
          Thread.sleep(CollectorDefine.COMM_SLEEP_TIME);
        }
        catch (InterruptedException interruptedexception) {
          CFunction.putHintString(1,
                                  "recBuffer2 in CommSocket Error1 " + "IP地址:" +
                                  this.m_IpAddress + "端口号:" + this.m_PortNo);
          return -1;
        }

        m_Count++;
        if (m_Count > m_TimeCounter) {
          break;
        }
      }
    }
    catch (IOException m_IoException) {
      CFunction.putHintString(1,
                              "recBuffer2 in CommSocket Error2 " + "IP地址:" +
                              this.m_IpAddress +
                              "端口号:" + this.m_PortNo);
      return -1;
    }

    return m_RecNum;
  }

  public int setConnectionParameters(SerialParameters serialParameters) {

    byte baud = 0;
    switch (serialParameters.getBaudRate()) {
      case CollectorDefine.B_300:
        baud = PortControlOptions.D_IOCTL_B300;
        break;
      case CollectorDefine.B_600:
        baud = PortControlOptions.D_IOCTL_B600;
        break;
      case CollectorDefine.B_1200:
        baud = PortControlOptions.D_IOCTL_B1200;
        break;
      case CollectorDefine.B_2400:
        baud = PortControlOptions.D_IOCTL_B2400;
        break;
      case CollectorDefine.B_4800:
        baud = PortControlOptions.D_IOCTL_B4800;
        break;
      case CollectorDefine.B_9600:
        baud = PortControlOptions.D_IOCTL_B9600;
        break;
      case CollectorDefine.B_57600:
        baud = PortControlOptions.D_IOCTL_B57600;
        break;
      case CollectorDefine.B_115200:
        baud = PortControlOptions.D_IOCTL_B115200;
        break;
      default:
        baud = (byte) 255;
        break;

    }

    byte bit = 0;
    switch (serialParameters.getDatabits()) {
      case CollectorDefine.BIT_5:
        bit = PortControlOptions.D_IOCTL_BIT5;
        break;
      case CollectorDefine.BIT_6:
        bit = PortControlOptions.D_IOCTL_BIT6;
        break;
      case CollectorDefine.BIT_7:
        bit = PortControlOptions.D_IOCTL_BIT7;
        break;
      case CollectorDefine.BIT_8:
        bit = PortControlOptions.D_IOCTL_BIT8;
        break;
      default:
        bit = (byte) 255;
        break;

    }

    byte parity = 0;
    switch (serialParameters.getParity()) {
      case CollectorDefine.PARITY_NONE:
        parity = PortControlOptions.D_IOCTL_NONE;
        break;
      case CollectorDefine.PARITY_ODD:
        parity = PortControlOptions.D_IOCTL_ODD;
        break;
      case CollectorDefine.PARITY_EVEN:
        parity = PortControlOptions.D_IOCTL_EVEN;
        break;
      default:
        parity = (byte) 255;
        break;

    }

    byte stop = 0;
    switch (serialParameters.getStopbits()) {
      case CollectorDefine.STOP_1:
        stop = PortControlOptions.D_IOCTL_STOP1;
        break;
      case CollectorDefine.STOP_2:
        stop = PortControlOptions.D_IOCTL_STOP2;
        break;
      default:
        stop = (byte) 255;
        break;
    }

    if (baud == (byte) 255 || bit == (byte) 255 || parity == (byte) 255 ||
        stop == (byte) 255) {
      return 1;
    }

    PortControln = new PortControl(m_IpAddress, (short)this.ControlPort);
    PortControln.OpenCmdPort(this.m_IpAddress, ControlPort);
    if (PortControln.CmdSocketToMoxa != null) {
      //System.out.println("Open command port " + m_IpAddress + ":" + ControlPort +
      //		 " succeeded.");
    }
    else {
      System.out.println("Open comamnd port " + m_IpAddress + ":" + ControlPort +
                         " failed.");
      CFunction.writeLog("Open comamnd port " + m_IpAddress + ":" + ControlPort +
                         " failed.", null);
      CloseCmdDataPorts();
      return -1;
    }

    //Step3: Reset port.
    short ret = PortControln.ResetPort();
    if (ret == PortControlOptions.OK) {
      //System.out.println("Reset port " + m_IpAddress + ":" + ControlPort +
      //		 " succeeded.");
    }
    else {
      System.out.println("Reset port " + m_IpAddress + ":" + ControlPort +
                         " failed.");
      CFunction.writeLog("Reset port " + m_IpAddress + ":" + ControlPort +
                         " failed.", null);
      CloseCmdDataPorts();
      return -1;
    }

    //Step4: Set ioctrl configuration.
    byte mode = (byte) (parity |
                        bit |
                        stop); //N,8,1

    ret = PortControln.ioctl(baud, mode);
    if (ret == PortControlOptions.OK) {
      //System.out.println("Set ioctrl of port " + m_IpAddress + ":" +
      //		 ControlPort + " succeeded.");
    }
    else {
      System.out.println("Set ioctrl of port " + m_IpAddress + ":" +
                         ControlPort +
                         " failed.");
      CFunction.writeLog("Set ioctrl of port " + m_IpAddress + ":" +
                         ControlPort +
                         " failed.", null);
      CloseCmdDataPorts();
      return -1;
    }

    /*
        //Step5: Set flowctrl configuration.
        ret = PortControln.flowctrl(PortControlOptions.D_FCTRL_CTS_NO,
                                    PortControlOptions.D_FCTRL_RTS_NO,
                                    PortControlOptions.D_FCTRL_TXXON_NO,
                                    PortControlOptions.D_FCTRL_RXXON_NO);
        if (ret == PortControlOptions.OK) {
          //System.out.println("Set flowctrl of port " + m_IpAddress + ":" +
          //		 ControlPort + " succeeded.");
        }
        else {
          System.out.println("Set flowctrl of port " + m_IpAddress + ":" +
                             ControlPort + " failed.");
          WriteLog("Set flowctrl of port " + m_IpAddress + ":" + ControlPort +
                   " failed.");
          CloseCmdDataPorts();
          return;
        }
     */
    /*
        //Step6: Set linectrl configuration.
        ret = PortControln.lctrl(PortControlOptions.D_LCTRL_DTR_ON,
                                 PortControlOptions.D_LCTRL_RTS_ON);
        if (ret == PortControlOptions.OK) {
          //System.out.println("Set linectrl of port " + m_IpAddress + ":" +
          //                   ControlPort + " succeeded.");
        }
        else {
          System.out.println("Set linectrl of port " + m_IpAddress + ":" +
                             ControlPort + " failed.");
          WriteLog("Set linectrl of port " + m_IpAddress + ":" + ControlPort +
                   " failed.");
          CloseCmdDataPorts();
          return;
        }
     */
    /*
        //Step7: Get line status.
        ret = PortControln.lstatus();
        if (ret >= 0) {
          //System.out.println("Get status of port " + m_IpAddress + ":" +
          //                   ControlPort + " succeeded." + " Status = " + ret + ".");
        }
        else {
         System.out.println("Get status of port " + m_IpAddress + ":" + ControlPort +
                             " failed.");
          WriteLog("Get status of port " + m_IpAddress + ":" + ControlPort +
                   " failed.");
          CloseCmdDataPorts();
          return;
        }
     */
    /*
        //Step8: Data transfer test.
        int IOok = 0;
        int IOfail = 0;
         System.out.println("IO testing on port " + m_IpAddress + ":" + ControlPort +
                           " ... ...");
        for (int i = 0; i < IORetryTimes; i++) {
          if (PortControln.DataSocketToMoxa != null) {
            int ok = DataTransferTest();
            if (ok == PortControlOptions.OK) {
              IOok++;
            }
            else {
              IOfail++;
            }
          }
        }
        System.out.println("Total io " + IORetryTimes + " times. " + IOok +
                           " successes, " + IOfail + " failures.");
         WriteLog("IO test " + IORetryTimes + " times. " + IOok + " successes, " +
                 IOfail + " failures.");
     */
    //Step9: Close any port if opened.
    CloseCmdDataPorts();
    return 1;

  }

  private void CloseCmdDataPorts() {
    /*    if (PortControln.DataSocketToMoxa != null) {
          PortControln.ClosePort(PortControln.DataSocketToMoxa);
        }
     */
    //System.out.println("Data port for " + m_IpAddress + ":" + ControlPort +
    //	       " closed.");
    if (PortControln.CmdSocketToMoxa != null) {
      PortControln.ClosePort(PortControln.CmdSocketToMoxa);
    }

    PortControln = null;
    //System.out.println("Command port for " + m_IpAddress + ":" + ControlPort +
    //	       " closed.");

    /*
         System.out.println("Port " + m_IpAddress + ":" + ControlPort + " closed.");
         WriteLog("Port " + m_IpAddress + ":" + ControlPort + " closed.");
         Calendar c = Calendar.getInstance();
         System.out.println("[" + c.getTime().toString() + "]\n");
         WriteLog("[" + c.getTime().toString() + "]\n");
     */

  }

  public int sendBreak() {
    return 1;
  }

  public boolean isConnectionOpen() {
    if (m_Skt == null) {
      return false;
    }
    return true;
  }

  public void serialEvent(SerialPortEvent e) {
    return;
  }

  public void ownershipChange(int type) {
    return;
  }

  public int test(byte[] cc) {
    String m_s = CFunction.translateBytesToString(1, cc, 3);
    CollectorDefine.SystemPrintln(m_s);
    for (int i = 0; i < 20; i++) {
      cc[i] = (byte) (i + 100);
    }

    return 1;
  }
  /*
    public static void main(String args[]) {
      String dbHost = "localhost";
      try {
        if (args.length > 0) {
          dbHost = args[0];
        }
        byte[] aa = new byte[256];
        for (int i = 0; i < 20; i++) {
          aa[i] = (byte) i;
        }
        CommSocket m_com = new CommSocket();
        m_com.test(aa);
        //                  String m_sd = CFunction.translateBytesToString(1 ,aa,3);
        //                  CollectorDefine.SystemPrintln(m_sd);
      }
      catch (Exception e) {
        CFunction.putHintString(1,
       "sendString in CommSocket Error #1 " + "IP地址:" + this.m_IpAddress +
                          "端口号:" + this.m_PortNo + m_IOException.getMessage());
      }
    }
   */

}

⌨️ 快捷键说明

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