2010-11-21 11 views
0

Voici mon code:Pourquoi le port COM4 de mon ordinateur est-il libre pendant que mon modem le utilise?

import java.io.*; 
import java.util.*; 
import javax.comm.*; 

public class SMS { 


    public static void main(String[] args) { 
      Enumeration lists=CommPortIdentifier.getPortIdentifiers(); 
      System.out.println(CommPortIdentifier.PORT_SERIAL); 
      System.out.println(lists.hasMoreElements()); 
      while (lists.hasMoreElements()){ 
       CommPortIdentifier cn=(CommPortIdentifier)lists.nextElement(); 

       if ((CommPortIdentifier.PORT_SERIAL==cn.getPortType())){ 
        System.out.println("Name is serail port "+cn.getName()+" Owned status "+cn.isCurrentlyOwned()); 

        try{ 
         SerialPort port1=(SerialPort)cn.open("ComControl",800000); 
         port1.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); 
         System.out.println("Before get stream"); 
         OutputStream out=port1.getOutputStream(); 
         InputStream input=port1.getInputStream(); 
         System.out.println("Before write"); 
         out.write("AT".getBytes()); 
         System.out.println("After write"); 
         int sample=0; 
         //while(((sample=input.read())!=-1)){ 
         System.out.println("Before read"); 
          //System.out.println(input.read() + "Testing "); 
         //} 
          System.out.println("After read"); 
         System.out.println("Receive timeout is "+port1.getReceiveTimeout()); 
        }catch(Exception e){ 
         System.err.println(e.getMessage()); 
        } 
       } 

       else{ 
        System.out.println("Name is parallel port "+cn.getName()+" Owned status "+cn.isCurrentlyOwned()+cn.getPortType()+" "); 
       } 
      } 
    } 

} 

Ceci est la sortie:

 
1 
true 
Name is serail port COM1 Owned status false 
Before get stream 
Before write 
After write 
Before read 
After read 
Receive timeout is -1 
Name is serail port COM2 Owned status false 
Before get stream 
Before write 
After write 
Before read 
After read 
Receive timeout is -1 
Name is serail port COM3 Owned status false 
Before get stream 
Before write 
After write 
Before read 
After read 
Receive timeout is -1 
Name is serail port COM4 Owned status false 
Before get stream 
Before write 
After write 
Before read 
After read 
Receive timeout is -1 
Name is parallel port LPT1 Owned status false2  
Name is parallel port LPT2 Owned status false2  

mon port COM4 est utilisé par mon modem téléphonique, mais selon le code de son statut est libre. Y at-il quelque chose que j'ai manqué dans le code et comment puis-je les régler?

Répondre

1

Peut-être que quel que soit le logiciel qui contrôle votre téléphone est en mode veille, ou quelque chose comme ça?