Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Capturar dato de un mòdem

Cordial saludo, deseo construir una aplicación,en la cual ingresando a un router-modem, pueda capturar el paràmetro SNR, tengo el siguiente còdigo el cual me muestra informaciòn sobre todo un comando, pero,solo necesito el valor SNR.

import java.io.*;
import java.net.*;


public class TelnetClient {
public static void main(String args[])
{
try
{
// Open a client socket connection
Socket clientSocket = new Socket("192.168.0.1", 23);
System.out.println("Client1: " + clientSocket);
// User defined Method

getPage(clientSocket);
}
catch (UnknownHostException uhe)
{
System.out.println("UnknownHostException: " + uhe);
}
catch (IOException ioe)
{
System.err.println("IOException: " + ioe);
}
}


public static void getPage(Socket clientSocket)
{
try
{
// Acquire the input and output streams
DataOutputStream outbound = new DataOutputStream(
clientSocket.getOutputStream() );
BufferedReader inbound = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()) );
//outbound.writeBytes("Administrator");
//outbound.writeBytes("\n");
outbound.writeBytes("14125665");
outbound.writeBytes("\r");
try { Thread.sleep ( 1000) ; } catch ( InterruptedException ie) { }
outbound.writeBytes("wan adsl line near");
outbound.writeBytes("\r");

// Read the response
String responseLine;
while ((responseLine = inbound.readLine()) != null)
{
// Display each line to the console
System.out.println(responseLine);
}
// Clean up
outbound.close();
inbound.close();
clientSocket.close();
}
catch (IOException ioe)
{
System.out.println("IOException: " + ioe);
}
}
}

Al ejecutar la aplicación obtengo una respuesta como la siguiente:

Client1: Socket[addr=/192.168.0.1,port=23,localport=4117]
����
Password: ********
Copyright (c) 2001 - 2006 Huawei
HG520b> wan adsl line near
relative capacity occupation: 100%
noise margin downstream: 36.4 db
output power upstream: 12.3 dbm
attenuation downstream: 18.0 db

Solo deseo capturar el valor noise margin downstream, es decir, "36.4"

¿Cómo puedo hacer esto?

enero 12, 2014 | Unregistered CommenterLeonardo Diaz

Solamente se necesitan métodos de la clase String:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

if (responseLine.contains("noise margin downstream")) {
String[] responseSplit = responseLine.split(" ");
System.out.println("db: " + responseSplit[3]);
}

enero 13, 2014 | Registered Commenterchoces

El que sabe sabe, muchas gracias por la ayuda, funciona, perfectamente.

enero 13, 2014 | Unregistered CommenterLeonardo Diaz