Foros del Web » Programación para mayores de 30 ;) » Java »

ayuda urgente con programa servidor en java

Estas en el tema de ayuda urgente con programa servidor en java en el foro de Java en Foros del Web. holaa, les escribo por que tengo un gran problema que no he podido solucionar, y espero que alguno de ustedes me pueda ayudar, tengo que ...
  #1 (permalink)  
Antiguo 07/11/2006, 14:28
 
Fecha de Ingreso: noviembre-2006
Mensajes: 1
Antigüedad: 17 años, 5 meses
Puntos: 0
ayuda urgente con programa servidor en java

holaa, les escribo por que tengo un gran problema que no he podido solucionar, y espero que alguno de ustedes me pueda ayudar, tengo que levantar un servidor el cual reciba datos de una GUI (hecha en java porsupuesto), es en realidad un programa cliente -servidor , pero en mi caso sería un solo cliente. Este dato que recibe el servidor (que en mi caso es un numero el cual envio), lo envia devuelta a la GUI y lo muestra en pantalla, a la vez, el servidor al recibir el dato hace correr otro programita (tini term)que esta inserto en el, bueno, este otro programita es otra clase , la cual me hace levantar los puertos seriales de una tarjeta Tini (que no se si alguien habra escuchado de ella), y esta envia ese dato a un PIC, bueno, no me doy mas vueltas

La gui esta hecha ya y funciona perfectamente, pero el problema esta en el servidor, yo baje unos hechos y adecue uno para lo que yo requería, pero creo que aún asi, por lo que me han dicho, el servidor esta hecho para hacer mas cosas de las que realmente necesito y acabo de explicar, tengo otro problema tambien que es que al desconectarme, el programita (tiniterm) sigue corriendo, y no se como pararlo, peor me interesa mas que me ayuden a solucionar lo primero, no se si alguien me puede revisar el programa y decrime que tengo de mas, o si alguien tiene un programa cliente -servidor, lo mas simple posible, y no como los que he podido ver que pueden recibir varios clientes

de antemano muchisimas gracias, y espero que de verdad me ayuden por que estoy super complicado

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

public class TcpServer implements Runnable {

private ServerSocket server;
private int readTimeout;
private Thread serverThread;
private volatile boolean runServer;

/**
* Método principal de la clase
*/
public static void main(String[] args) throws IOException {

int localPort = 5551;

//Interrupción en milisegundos para esperar datos después de la conexión
int readTimeout = 5000000;

//Se crea un objeto de TcpServer que usa localPort y readTimeout.
TcpServer myTcpServer = new TcpServer(localPort, readTimeout);

while (true){

// Lazo infinito que ejecuta esperando conexión
try {

Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.print("InterruptedException: ");
System.out.println(e.getMessage() );
}
}
} // fin main()


//Se crea un hilo para manejar las peticiones una vez que uno se conecte
// param readTimeout Tiempo en milisegundos para esperar un byte


public TcpServer(int localPort, int readTimeout) throws IOException {

// Se crea un server socket en localPort.

server = new ServerSocket(localPort);
System.out.println("Server listening on port " + localPort + ".");

this.readTimeout = readTimeout;

serverThread = new Thread(this);
serverThread.setDaemon(true);

serverThread.start();
} // Fin del constructor TcpServer

/**
* Parar el server.
*/
public void stop() {

//Cuando runserver es falso,este termina
runServer = false;

try {
// Cerrar el socket
server.close();
} catch (IOException e) {
}
} //fin del stop()

/**
* Método principal para el hilo.
*/
public void run() {

runServer = true;

while (runServer) {
try {
// Esperar y aceptar una petición de conexión
Socket socket = server.accept();

try {
// LLamar al metodo para manejar la conexión
handleConnection(socket);

} catch (IOException e) {
System.out.print("Error while working with socket: ");
System.out.println(e.getMessage());
} finally {

// Cerrar el socket para liberar recursos

try {
socket.close();
} catch (IOException e) {
}
}
} catch (IOException e) {

runServer = false;
}
}
} // fin run()

/**
Manejar la conexión por si solo
*/
private void handleConnection(Socket socket) throws IOException {

System.out.println("Connected to " + socket);

socket.setSoTimeout(readTimeout);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();

//Comienza el control

try {
int b=in.read();

System.out.println("Recivo " +b);

String data="prender led";

PrintWriter envio=new PrintWriter(socket.getOutputStream(),true);

envio.println(data);

// Comienza a correr TiniTerm
try {
TiniTerm term = new TiniTerm("serial0", 9600, b);
term.start();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}

} catch (InterruptedIOException ex) {

System.out.print("The remote host sent no data within ");
System.out.print(readTimeout / 1000);
System.out.println(" seconds.");
}

} // fin de handleConnection()




} // fin de la clase TcpServer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:27.