你试一试
send("hello+"ctrl"+"z");
不过我没有试过!

解决方案 »

  1.   

    请看我的程序在超级终端下发送命令格式是
    AT+CMGS=“+8613939060564” 回车
    >发送的内容 ctrl-z键结束并发送import java.io.*;
    import javax.comm.*;
    import java.util.*;
    import java.awt.event.*;
    public class receiveCmd extends Thread implements SerialPortEventListener {
      SerialPort sPort=null;
      static BufferedReader in=null;
      public receiveCmd(SerialPort sPort) {
      this.sPort=sPort;
      }
       public void send(SerialPort sPort)
       {
          String cmd1="AT+CMGS=\"+8613939060564\"\r THIS IS TEST!";
          //cmd1+=(char)(Integer.parseInt("1B",16));//用ESC表示结束并发送
         cmd1+=(char)(Integer.parseInt("17",16))+"z";//用ctrl-z表示结束并发送 “这样表示不正确”
         String cmd2="AT+CMGL=\"REC UNREAD\"";
         String cmd3="AT+CMGL=\"ALL\"";
         PrintWriter pw=null;
        try{
           pw=new PrintWriter(sPort.getOutputStream());
           pw.println(cmd2);
           pw.flush();
           pw.close();
           System.out.println("command has been send");     } catch(IOException e){System.out.println("catch exception when send cmd to modemn");
                         System.out.println(e.getMessage());}   }  public void receive(SerialPort sPort)
       {
        BufferedReader br=null;
        String msg=null;
        SerialPortEvent sEvent=null;    byte[] b=null;    //SerialPortEventListener sListener=null;
      try{
        in=new BufferedReader(new InputStreamReader(sPort.getInputStream()));
        sPort.addEventListener(this );
        sPort.notifyOnDataAvailable(true);
            System.out.println("msg is receiveing...");
          }
         catch(IOException e){System.out.println("catch exception when send cmd to modemn");
                         System.out.println(e.getMessage());}
         catch (TooManyListenersException e) {e.getMessage();}
        }
      public void run()
      {send(sPort);
       while(true)    {
          // try{sleep(100);}
         //catch(InterruptedException e){System.out.println(e.getMessage());}
          receive(sPort);
          break;
          }
       }   public synchronized void serialEvent(SerialPortEvent sEvent)
        {
           String msg;
        if(sEvent.getEventType()==sEvent.DATA_AVAILABLE)    { System.out.println("Data from COM1 is coming...");
         try{
         while(true){msg=in.readLine();
            System.out.println("msg from modemn is:"+msg);
           if(msg.equals("OK"))
            {in.close();
            break;}
         }//while
       //  System.exit(0);
         }catch(IOException e){System.out.println(e.getMessage());}
        }//if
    }
    }
      

  2.   

    你只需要连上CRL+Z的ASCII代码就可以了
    CRL+Z的代码我不记得了,你可以找个ASCII表对照找一下
      

  3.   

    我也这么认为,是直接加上CTRL的ASCII码和Z的ASCII码,还是要加上CRL+Z的ASCII代码?
      

  4.   

    当然是CRL+Z的ASCII代码了
    我记得好像是12,你查一下吧
    字符0的ASCII代码是30,CRL+Z的ASCII代码要比30小的多
      

  5.   

    我已经进行了测试,证明是ctrl的ASCII码加上Z的就可以了