SoloCodigo
		Programación General => Java => Mensaje iniciado por: perlita_ls en Martes 10 de Abril de 2007, 05:35
		
			
			- 
				Hola! 
 Estoy haciendo un chat que se comunica a través del puerto serie, he realizado la itnerfaz gráfica y he bajado el API de Java para Windows, en la página rxtx.org, encontré un ejemplo de como comunicar dos computadoreas a través del puerto serie, he estado analizando este código y hay ciertas cosas que no entiendo, me gustaría ver si alguien de este foro, me pudiera explicar ciertas cosas. Como por ejemplo para que se usa el instance of, y el uso del inputstream y el método de Serial Reader no me queda tampoco muy claro. A continuación pegó el código:
 
 import gnu.io.CommPort;
 import gnu.io.CommPortIdentifier;
 import gnu.io.SerialPort;
 
 import java.io.FileDescriptor;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
 class PuertoSerial
 {
 public PuertoSerial()
 {
 super();
 }
 
 void connect ( String portName ) throws Exception
 {
 CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
 if ( portIdentifier.isCurrentlyOwned() )
 {
 System.out.println("Error: Puerto en uso");
 }
 else
 {
 CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
 
 if ( commPort instanceof SerialPort )
 {
 SerialPort serialPort = (SerialPort) commPort;
 serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
 
 InputStream in = serialPort.getInputStream();
 OutputStream out = serialPort.getOutputStream();
 
 (new Thread(new SerialReader(in))).start();
 (new Thread(new SerialWriter(out))).start();
 
 }
 else
 {
 System.out.println("Error: Solo soporta puerto serie");
 }
 }
 }
 
 
 public static class SerialReader implements Runnable
 {
 InputStream in;
 
 public SerialReader ( InputStream in )
 {
 this.in = in;
 }
 
 public void run ()
 {
 byte[] buffer = new byte[1024];
 int len = -1;
 try
 {
 while ( ( len = this.in.read(buffer)) > -1 )
 {
 System.out.print(new String(buffer,0,len));
 }
 }
 catch ( IOException e )
 {
 e.printStackTrace();
 }
 }
 }
 
 
 public static class SerialWriter implements Runnable
 {
 OutputStream out;
 
 public SerialWriter ( OutputStream out )
 {
 this.out = out;
 }
 
 public void run ()
 {
 try
 {
 int c = 0;
 while ( ( c = System.in.read()) > -1 )
 {
 this.out.write©;
 }
 }
 catch ( IOException e )
 {
 e.printStackTrace();
 }
 }
 }
 
 public static void main ( String[] args )
 {
 try
 {
 (new PuertoSerial()).connect("COM1");
 }
 catch ( Exception e )
 {
 
 e.printStackTrace();
 }
 }
 }
 
 De antemano, Gracias             Atte. PerLiTa
- 
				bueno mira inputstream se utilia para indicar una entrada de datos a través del teclado
 para lo que preguntas de serial reader, aqui te mando una liga donde explica su uso
 
 http://www.itapizaco.edu.mx/paginas/JavaTu...19/cap19-3.html (http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte19/cap19-3.html)
 
 y aqui mismo podras encontrar otras cosas de interes para tu chat
 
 Espero te sirva
- 
				Hola.. me fui de gran utilidad el link que me mandaste, ahora tengo otra duda, como puedo implementar ese código a un ambiente gráfico, para eso hice dos textares, una para el texto enviado y otro para el texto recibido, así como un botón de Enviar y otros para conectar y desconectar, lo que no se es que métodos tendría que invocar para poder Enviar los mensajes y cual para desconectar y conectar. GraciaS!
			
- 
				Bueno mira eso tambien viene en el link que te mande, se realiza a travéz de sockets, pero aqui hay otra liga con un codigo mas explicado :) 
 
 http://www.unav.es/cti/manuales/Java/materiales/indice.html (http://www.unav.es/cti/manuales/Java/materiales/indice.html)
 
 Espero te sirva
- 
				Yo si te digo algo... no hay nada peor q intentar enteder el codigo de otros,
 pero peor aun, es intentar correrlo.
 
 ....
 
 Yo q he ya he trabajado con el puerto serial, te animo a q intentes crear tu
 mismo el chat... q viendolo bien, no es tan complicado como parece.
 
 Animate y de seguro aki muchos en el foro te iran colaborando...
 
 Salu2 !!!