| | |
Connecting modem via java
![]() |
You should really give us a more specific descripition of your needs, but overall this question sounds more suited to the Java programming forum.
Moving there now...
Moving there now...
"May the Wombat of Happiness snuffle through your underbrush."
- Ancient Aborigine blessing
Please do not contact me by email or PM for help. We're all volunteers here, and only have so much free time to dedicate to our efforts.
However, if I've been working on a thread with you already, and seem to have "forgotten" your thread, please do send me a message. I try not to let things slip through the cracks, but it does happen sometimes.
- Ancient Aborigine blessing
Please do not contact me by email or PM for help. We're all volunteers here, and only have so much free time to dedicate to our efforts.
However, if I've been working on a thread with you already, and seem to have "forgotten" your thread, please do send me a message. I try not to let things slip through the cracks, but it does happen sometimes.
•
•
Join Date: Nov 2004
Posts: 5
Reputation:
Solved Threads: 0
hi
i have connected two pcs using modem via PSTN using comm api in follwing sequences.
1) My local modem calls to the Remote modem using the ATDT 235 command
2) on remote side one program continuosly listens to the incoming call.
3) After that my local modem detects the "CONNECT 9600" response.
4) Also my remote modem detects the same response it waits for some time and start transmitting data.
5) But my local modem is unable to receive some starting bytes and after some bytes it has receive it stops the receiving bytes.
6) But when i terminate the remote program my local modem receives the whole set of bytes.
Remote modem - DLINK DFM-562E++
Local Modem - DLINK DFM-560ES
THANKS IN ADVANCE
i have connected two pcs using modem via PSTN using comm api in follwing sequences.
1) My local modem calls to the Remote modem using the ATDT 235 command
2) on remote side one program continuosly listens to the incoming call.
3) After that my local modem detects the "CONNECT 9600" response.
4) Also my remote modem detects the same response it waits for some time and start transmitting data.
5) But my local modem is unable to receive some starting bytes and after some bytes it has receive it stops the receiving bytes.
6) But when i terminate the remote program my local modem receives the whole set of bytes.
Remote modem - DLINK DFM-562E++
Local Modem - DLINK DFM-560ES
THANKS IN ADVANCE
•
•
Join Date: Nov 2004
Posts: 5
Reputation:
Solved Threads: 0
This is my Dialup.java running at server side
this is my client side code
Java Syntax (Toggle Plain Text)
import java.io.*; import java.util.*; import javax.comm.*; public class Dialup implements Runnable,SerialPortEventListener { static CommPortIdentifier portId; static Enumeration portList; InputStream inputStream; OutputStream outputStream; SerialPort serialPort; Thread dialupThread; String telNo; String dialCommand; String initCommand; String line; static BufferedReader bos; static OutputStream fos = null; static FileOutputStream output = null; static DataOutputStream dOut = null; boolean flag = false; int conCount = 0; public static void main(String[] args) { try { fos = new FileOutputStream("dem.txt",true); bos = new BufferedReader(new FileReader("dem.txt")); output = new FileOutputStream("abc.txt",true); dOut = new DataOutputStream(output); }catch(Exception e) {} if( args.length != 1 ) { System.err.println("Usage: Dialup "); return; } portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals("COM1")) { Dialup dialer = new Dialup(args[0]); } } } } public Dialup(String telNo) { // this.dialCommand = "&F&K3%E2%C0W2\\N3+MS=12,1,28000,46667"; this.telNo = telNo; this.dialCommand = "ATDT"+telNo+"\r"; initCommand = "&F&K3%E2%C0W2\\N3+MS=12,1,28000,46667\r"; // this.dialCommand = "AT&C0&W0\r"; // this.dialCommand = "ATO0"; // this.dialCommand = "ATO0"; try { serialPort = (SerialPort) portId.open("DialUp", 2000); } catch (PortInUseException e) { } try { inputStream = serialPort.getInputStream(); outputStream = serialPort.getOutputStream(); } catch (IOException e) { System.out.println(" Hell " + e); } try { serialPort.addEventListener(this); } catch (TooManyListenersException e) { } portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals("COM1")) { // System.out.println(getInputBufferSize()); // try // { //serialPort = (SerialPort) portId.open("writereadApp", 2100); //System.out.println("Opened the port for writing: " + portId.getName()); // } // catch (PortInUseException e) {System.out.println("IN USE ---- " + e);} try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) { System.out.println("UnsupportedCommOperationException, Could not write to the port: " + e); } try { outputStream = serialPort.getOutputStream(); inputStream = serialPort.getInputStream(); } catch (IOException e) {System.out.print(e);} /* try { serialPort.addEventListener(this); } catch (TooManyListenersException e) {System.out.println("TOOO " + e);} */ serialPort.notifyOnDataAvailable(true); serialPort.notifyOnCarrierDetect(true); serialPort.notifyOnDataAvailable(true); serialPort.notifyOnBreakInterrupt(true); serialPort.notifyOnCTS(true); serialPort.notifyOnDSR(true); serialPort.notifyOnFramingError(true); serialPort.notifyOnOutputEmpty(true); serialPort.notifyOnOverrunError(true); serialPort.notifyOnParityError(true); serialPort.notifyOnRingIndicator(true); } } } dialupThread = new Thread(this); dialupThread.start(); } public void run() { while(true) { if(conCount == 0) { try { if( !serialPort.isCD() ) { // outputStream.write(initCommand.getBytes()); System.err.println("Try to connect ..."); outputStream.write(dialCommand.getBytes()); } Thread.sleep(60000); /*for(int i=0; i < 10; i++) { outputStream.write("Ram".getBytes()); System.out.print("Ram"); }*/ } catch(Exception ex) { System.err.println("Failed to write message"); } } } } public void serialEvent(SerialPortEvent event) { switch(event.getEventType()) { case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.DSR: System.out.println("Data Set Ready."); break; case SerialPortEvent.OUTPUT_BUFFER_EMPTY: System.out.println("Ignored event"); break; case SerialPortEvent.BI: System.out.println("Break Interrupt"); break; case SerialPortEvent.CTS: System.out.println("Clear to send"); break; case SerialPortEvent.RI: if( event.getNewValue() ) { System.out.println("Ring Indicator On"); } else { System.out.println("Ring Indicator Off"); } break; case SerialPortEvent.CD: if( event.getNewValue() ) { System.out.println("Connected"); conCount = conCount + 1; flag = true; } else { System.out.println("Disconnected"); } break; case SerialPortEvent.DATA_AVAILABLE: handleData(); break; } } public void handleData() { try { int avail = inputStream.available(); byte[] response = new byte[avail]; StringBuffer strbuf = new StringBuffer(); inputStream.read(response, 0, avail); for (int i = 0; i < avail; i++) { if(!flag) { fos.write((char)response[i]); } } /* while((line = bos.readLine())!=null) { if(line.equals("CONNECT 9600")) { flag = true; dOut.flush(); } } */ if(flag) { inputStream.read(response, 0, avail); for (int i = 0; i < avail; i++) { Thread.sleep(5); output.write((char)response[i]); System.out.print((char)response[i]); } } }catch(IOException ie1){System.out.println("File " +ie1);} catch(InterruptedException in){System.out.println("Interrupt " +in);} } }
this is my client side code
Java Syntax (Toggle Plain Text)
import java.io.*; import java.util.*; import javax.comm.*; public class ReadDemo1 implements SerialPortEventListener { static Enumeration portList; static CommPortIdentifier portId; static String output = ""; SerialPort serialPort; static OutputStream outputStream; static InputStream inputStream; static String dialCommand; Thread readThread; int temp = 0; //************************* StringBuffer inputBuffer = new StringBuffer(); DataOutputStream dout = null; OutputStream fos = null; String line; int ch; BufferedReader bos = null; int newData = 0; boolean writeFlag = false; FileInputStream fis = null; public static void main(String[] args) { int ch; InputStream fis; byte[] size = null; int count = 0; ReadDemo1 readObject = new ReadDemo1(); /* try { // outputStream.write("ATM0L1S0=1&D2&C1S2=36S95=46&Q5\r".getBytes()); outputStream.write("AT\\K0\r".getBytes()); }catch(IOException ioe) { System.out.println("IOException" + ioe); } */ } void Write(byte[] commandToSend) { try { outputStream.write(commandToSend); System.out.println("Successfully Written: " + commandToSend); } catch (IOException e) {System.out.println("IO Exception Occured: " + e);} } void closePort() { serialPort.close(); System.out.print("Serial port closed."); } public ReadDemo1() { portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals("COM1")) { try { serialPort = (SerialPort) portId.open("writereadApp", 2000); System.out.println("Opened the port for writing: " + portId.getName()); } catch (PortInUseException e) {System.out.print(e);} try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) {System.out.println("UnsupportedCommOperationException, Could not write to the port: " + e);} try { outputStream = serialPort.getOutputStream(); inputStream = serialPort.getInputStream(); } catch (IOException e) {System.out.print(e);} try { serialPort.addEventListener(this); } catch (TooManyListenersException e) {System.out.print(e);} serialPort.notifyOnDataAvailable(true); serialPort.notifyOnCarrierDetect(true); serialPort.notifyOnDataAvailable(true); serialPort.notifyOnBreakInterrupt(true); serialPort.notifyOnCTS(true); serialPort.notifyOnDSR(true); serialPort.notifyOnFramingError(true); serialPort.notifyOnOutputEmpty(true); serialPort.notifyOnOverrunError(true); serialPort.notifyOnParityError(true); serialPort.notifyOnRingIndicator(true); } } } } public void serialEvent(SerialPortEvent event) { switch(event.getEventType()) { case SerialPortEvent.DATA_AVAILABLE: handleData(); break; case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.DSR: System.out.println("Data set ready."); break; case SerialPortEvent.OUTPUT_BUFFER_EMPTY: System.out.println("Ignored event"); break; case SerialPortEvent.BI: System.out.println("Break Interrupt"); break; case SerialPortEvent.CTS: System.out.println("Clear to send"); break; case SerialPortEvent.RI: System.out.println("Pick up the receiver."); if( event.getNewValue() ) { System.out.println("Ring Indicator On"); } else { System.out.println("Ring Indicator Off"); } break; case SerialPortEvent.CD: if( event.getNewValue() ) { System.out.println("Connected"); try { Thread.sleep(120000); while((ch = fis.read()) != -1) { outputStream.write(ch); // Thread.sleep(15); System.out.print((char)ch); } Thread.sleep(180000); }catch(Exception e) { System.out.println(e); } } else { System.out.println("Disconnected"); System.exit(0); } break; } } public void handleData() { // System.out.println(writeFlag); System.out.print("Inside serial event"); try { fis = new FileInputStream("abc.txt"); }catch(FileNotFoundException fne) { System.out.println("File Does not exists."); } try { fos = new FileOutputStream("rmn.txt",true); bos = new BufferedReader(new FileReader("rmn.txt")); dout = new DataOutputStream(fos); int avail = inputStream.available(); byte[] response = new byte[avail]; StringBuffer strbuf = new StringBuffer(); inputStream.read(response, 0, avail); for (int i = 0; i < avail; i++) { fos.write((char)response[i]); } if(!writeFlag) { while((line = bos.readLine())!=null) { // dout.flush(); if(line.equals("CONNECT 9600/ARQ")) { writeFlag = true; System.out.println("connect"); } } } if(writeFlag) { } }catch(IOException ie1){System.out.println("File " +ie1);} // catch(InterruptedException ie1){System.out.println("File " +ie1);} } }
•
•
Join Date: Mar 2005
Posts: 1
Reputation:
Solved Threads: 0
•
•
•
•
Originally Posted by atul_manaskar
hi
can u plz tell me the sequence in which after the modem get connected i should flush the streams while transferring data from one end to other.
Modem stop receiving bytes after the follwing events
Data set Ready
Break Interrupt
did you have any luck finding the problem? (i've looked over the code, but i'm not familiar enough with javax.comm to find anything new)
Hi nawal,
We ask that members not tag their questions on to a thread previously started by another member (regardless of how similar your problem might seem). Not only does it divert the focus of the thread away from the original poster's problem, but it also makes it less likely that you yourself will get the individual attention that you need.
Please start your own thread and post your question there. When you do, please try to give us as much specific info as possible regarding the problem (exact error messages, system specs, etc.).
For a full description of our posting guidelines and general rules of conduct, please see this page:
http://www.daniweb.com/techtalkforum...niweb_policies
Thanks for understanding.
We ask that members not tag their questions on to a thread previously started by another member (regardless of how similar your problem might seem). Not only does it divert the focus of the thread away from the original poster's problem, but it also makes it less likely that you yourself will get the individual attention that you need.
Please start your own thread and post your question there. When you do, please try to give us as much specific info as possible regarding the problem (exact error messages, system specs, etc.).
For a full description of our posting guidelines and general rules of conduct, please see this page:
http://www.daniweb.com/techtalkforum...niweb_policies
Thanks for understanding.
"May the Wombat of Happiness snuffle through your underbrush."
- Ancient Aborigine blessing
Please do not contact me by email or PM for help. We're all volunteers here, and only have so much free time to dedicate to our efforts.
However, if I've been working on a thread with you already, and seem to have "forgotten" your thread, please do send me a message. I try not to let things slip through the cracks, but it does happen sometimes.
- Ancient Aborigine blessing
Please do not contact me by email or PM for help. We're all volunteers here, and only have so much free time to dedicate to our efforts.
However, if I've been working on a thread with you already, and seem to have "forgotten" your thread, please do send me a message. I try not to let things slip through the cracks, but it does happen sometimes.
![]() |
Similar Threads
- Connecting modem (C++)
Other Threads in the Java Forum
- Previous Thread: Beginner problem compiling with javac
- Next Thread: Help
| Thread Tools | Search this Thread |
-xlint actionlistener android api applet application array arrays automation bi binary blackberry block bluetooth character class client code compile compiler component consumer database desktop developmenthelp eclipse error fractal freeze ftp game gameprogramming givemetehcodez graphics gui health html ide image integer j2me j2seprojects java javac javaee javaprojects jetbrains jni jpanel jtable julia learningresources lego linked linux list login loops mac main map method methods mobile netbeans notdisplaying number online printf problem program project properties qt recursion researchinmotion rotatetext rsa scanner screen server set singleton sms sort sql string swing system textfields threads time title tree tutorial-sample update variablebinding windows working xor





