Regresar   Foros del Web > Programación para sitios web > Java y JSP

El registro es Gratis en Foros del Web
Respuesta
 
Herramientas Buscar en Tema Desplegado
Antiguo 06/10/04, 22:00:56   #1 (permalink)
goncafa ha deshabilitado el Karma
 
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
Contactar con goncafa a través de MSN
goncafa is offline  
FAQ's de Java

Bueno, este es un tema que ya hacia tiempo le venia faltando a este foro, asi que aqui da inicio lo que seran la FAQ's de Java, que debemos ir armando entre todos, y siguiendo el mismo esuqema que los demas foros, es decir.

Tema: Tema
Pregunta: Pregunta?
Respuesta: Respuesta
Ejemplo:
ejemplo

Donde el ejemplo si lo necesita siempre demos ponerlo entre los bloques [ PHP ] y [ /PHP ] lo que provoca que el codigo se coloree y podamos darle formato y sea mucho mas entendible

IMPORTANTE: Al poner nuevas FAQ's usen un mensaje nuevo para cada pregunta, no pongas mas de un FAQ por mensaje, pues si tenemos distribuidas las FAQ's en mensajes induviduales despues podremos hacer facilmente un indice para encontrar las respuestas mas rapido.

vamos, armemos entre todos las FAQ´s

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo

Última edición por goncafa fecha: 07/10/04 a las 07:40:38.
  Responder Con Cita
Antiguo 06/10/04, 22:18:29   #2 (permalink)
goncafa ha deshabilitado el Karma
 
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
Contactar con goncafa a través de MSN
goncafa is offline  
Tema: Java Principiante
Pregunta: Que es Java y para que sirve??
Respuesta: Java es un lenguage de tipo general, es decir, puedes programar cualquier cosa con el, desde un sistema operativo, hasta un pequeña aplicacion de consola. Es muy usado en el ambito WEB y de las redes, por sus capacidades nativas de comunicacion y seguridad.
Java ademas puede ser ejecutado desde dispocitivos moviles como celulares y PDA's, tambien se puede encontrar en televisores, microhondas y practicamente en lo que se te ocurra.
__________________
se despide hasta la proxima
Gonzalo Castillo
  Responder Con Cita
Antiguo 06/10/04, 22:24:07   #3 (permalink)
goncafa ha deshabilitado el Karma
 
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
Contactar con goncafa a través de MSN
goncafa is offline  
Tema: Arreglos
Pregunta: Como puedo declarar un arreglo??
Respuesta:
Los arreglos en Java se tratan como los objetos, es decir, para inicializar un arreglo debes emplear la misma metodologia que usas para iniciar una instancia de una clase

Ejemplo:
Código PHP:
//un arreglo de enteros de 10 posiciones
int arreglo []= new int[10];

//Un arreglo de String bidimencional de 8x8
String nombres[] = new String[8][8]; 
__________________
se despide hasta la proxima
Gonzalo Castillo
  Responder Con Cita
Antiguo 06/10/04, 22:31:31   #4 (permalink)
goncafa ha deshabilitado el Karma
 
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
Contactar con goncafa a través de MSN
goncafa is offline  
Tema: Java Basico
Pregunta: Como debo hacer compraciones de igualdad entre Cadenas??
Respuesta:
En Java los tipos String son objetos y no tipos primitivos, por ende no se pueden comparar con 2 signos iguales de esta forma ==, en vez de ello existe un metodo llamado equals() que es usado para esta funcion.

Ejemplo:
Código PHP:
String nombreUno "Gonzalo";
String nombreDos "Nicolas";

//hago la comparacion
if(nombreUno.equals(nombreDos)) {
    
//aqui no llegariamos pues no son iguales
} else {
    
//estas vez entraria aqui pues los objetos son diferentes

__________________
se despide hasta la proxima
Gonzalo Castillo
  Responder Con Cita
Antiguo 14/10/04, 08:10:46   #5 (permalink)
goncafa ha deshabilitado el Karma
 
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
Contactar con goncafa a través de MSN
goncafa is offline  
Tema: Java Configuracion
Pregunta: ¿Como seteo el PATH y para que sirve?
Respuesta:
Setear el PATH en tu maquina sirve para que esta sepa donde debe buscar los programas que no encuentra o desconoce.
Tener seteado en PATH de nustra maquina la ruta al \bin\ del JDK sirve para poder compilar y ejecutar nuestros programas Java desde la consola estando parados en cualquier directorio o disco local de nuestro PC, y no debemos llevar nuestros .java al \bin\ del JDK para compilalro y ejecutarlos.

Para setear nuestro path basta con abriri una sonsola (ventana DOS) o como prefieran llamarle y escribir esto

SET PATH = %PATH%;<RUTA_AL_BIN>

Donde <RUTA_AL_BIN> debes reemplazarlo pro la ruta completa a nuestro \bin\ del JDK, por ejemplo, en mi caso tengo instalado la version 1.4.2_03 del J2SE y se encuntra en la carpeta C:\j2sdk1.4.2_03\ entonces para setear mi PATH debo escribir esto

SET PATH = %PATH%;C:\j2sdk1.4.2_03\bin

el %PATH% significa que estoy agrenado ademas todas las rutas del PATH actual, es como decir en Java por ejemplo

String path = "algo";
path = path + "otro algo";

es decir, sirve para no perder lo que ya habia en el.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  Responder Con Cita
Antiguo 01/11/04, 13:39:42   #6 (permalink)
goncafa ha deshabilitado el Karma
 
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
Contactar con goncafa a través de MSN
goncafa is offline  
Tema: Configuracion
Pregunta: Por que no me funcionan las aplicaciones Java en mi winXP?
Respuesta:
La razon es pq al momento de salir al mercado windows XP, Microsoft tenia algunos problemas con SUN, la empresa propietaria de la tecnologia Java, por lo cual nustro tio decidio no colocar la Maquina Virtual de Java (JVM) en su nueva distribucion de windows, por ende, cualquier programa en Java no podria funcionar por el hecho de no existir dicha JVM.
Claro, luego los tribunales obligaron a M$ a volver a incluirla, pero lamentablemente la mayoria de las distribuciones que nos llegan son de la epoca en cuando esta no venia incluida.

Para solventar dicho problema debemos bajarnos la JVM o tambien conocida como J2RE desde el sitio oficial de SUN http://java.sun.com, cabe destacar que es completamente gratuita.
__________________
se despide hasta la proxima
Gonzalo Castillo
  Responder Con Cita
Antiguo 13/03/05, 17:06:42   #7 (permalink)
stock tiene algunos puntos positivos de karma
 
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
stock is offline  
Tema: Base de datos MySQL
Pregunta Como puedo conectarme a MySQL
Respuesta Necesitas tener el driver JDBC que es el que se utiliza para hacer conecciones y query's a nuestra base de datos MySQL , puedes bajarlo desde aqui: http://www.mysql.com/products/connector/j/

Necesitas actualizar tu classpath, en el editor que estes usando o directamente desde la consola, una vez instalado correctamente, puedes usar este codigo para darte una idea.
Código:
import java.sql.*;

public class coneccionMySql
{
	static String bd = "myDataBase";
	static String login = "user";
	static String password = "mymegapassword";
	static String url = "jdbc:mysql://localhost/" + bd;
	
	
	public static void main(String[] args)throws Exception
	{
		Connection conn = null;
		try
		{
			//ESTABLECEMOS LA CONECCION
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			conn = DriverManager.getConnection(url,login,password);
			
			if (conn != null)
			{
				System.out.println("Conexión a base de datos " + url + " ... Ok");
				
				//HACEMOS UNA CONSULTA
				Statement stmt = conn.createStatement();
				ResultSet res  = stmt.executeQuery("SELECT * FROM carreras");
				
				while(res.next())
				{
					String Id  = res.getString("Id");
					String Carrera   = res.getString("Carrera");
					String Facultad= res.getString("Facultad");
					
					System.out.println(Id +" \t "+Carrera+" \t "+Facultad);
				}
				
				res.close();
				stmt.close();
				conn.close(); 
			}
		}
		catch(SQLException ex)
		{
			System.out.println("\n\nHubo un error : "+ex);
		}
		catch(ClassNotFoundException ex)
		{
			System.out.println("\n\nHubo otro error!!, no se encontro el driver, revisa tu ClassPath :(\n");
			System.out.println(ex);
		}
		
	}
}
__________________
Don't hate the languaje, hate the runtime environment
Crysfel's Blog :: Blog de programación, JAVA,PHP, AJAX, JavaScript, CSS y otras hierbas

Última edición por stock fecha: 08/02/06 a las 20:29:53.
  Responder Con Cita
Antiguo 18/03/05, 14:01:50   #8 (permalink)
stock tiene algunos puntos positivos de karma
 
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
stock is offline  
Tema: Capturar desde el teclado en modo consola
Pregunta: Como puedo capturar caracteres desde el teclado en Java??
Respuesta: Las instrucciones System.in.read(); nos permite leer entradas desde el teclado en codigo ASCII, mediante un ciclo capturamos los caracteres introducidos hasta que se presione la tecla ENTER, almacenandolos en un STRING, ya despues, depende lo que necesitemos, lo caovertimos a Integer, Double, etc... basicamente es lo que hace la siguiente clase :)

Código:
import java.io.*;
import java.util.*;

public class MeterDatos
{

    public static String readLine()
    {
        char nextChar;
        String result = "";
        boolean done = false;

        while (!done)
        {
            nextChar = readChar();
            if (nextChar == '\n')
               done = true;
            else if (nextChar == '\r')
            {
                //Do nothing.
                //Next loop iteration will detect '\n'
            }
            else
               result = result + nextChar;
        }

        return result;
    }

    public static String readLineWord()
    {
        String inputString = null,
               result = null;
        boolean done = false;

        while(!done)
        {
            inputString = readLine();
            StringTokenizer wordSource =
                                new StringTokenizer(inputString);
            if (wordSource.hasMoreTokens())
            {
                result = wordSource.nextToken();
                done = true;
            }
            else
            {
                System.out.println("Your input is not correct. Your input must");
                System.out.println("contain at least one nonwhitespace character.");
                System.out.println("Please, try again. Enter input:");
           }
       }

       return result;
   }


    public static int readLineInt()
    {
        String inputString = null;
        int number = -9999;//To keep the compiler happy.
                              //Designed to look like a garbage value.
        boolean done = false;

        while (! done)
        {
            try
            {
                inputString = readLine();
                inputString = inputString.trim();
                number = (Integer.valueOf(inputString).intValue());
                done = true;
            }
            catch (NumberFormatException e)
            {
                System.out.println(
                                "Your input number is not correct.");
                System.out.println("Your input number must be");
                System.out.println("a whole number written as an");
                System.out.println("ordinary numeral, such as 42");
                System.out.println("Please, try again.");
                System.out.println("Enter a whole number:");
            }
        }

        return number;
    }


    public static long readLineLong()
    {
        String inputString = null;
        long number = -9999;//To keep the compiler happy.
                            //Designed to look like a garbage value.
        boolean done = false;

        while (! done)
        {
            try
            {
                inputString = readLine();
                inputString = inputString.trim();
                number = (Long.valueOf(inputString).longValue());
                done = true;
            }
            catch (NumberFormatException e)
            {
                System.out.println(
                                "Your input number is not correct.");
                System.out.println("Your input number must be");
                System.out.println("a whole number written as an");
                System.out.println("ordinary numeral, such as 42");
                System.out.println("Please, try again.");
                System.out.println("Enter a whole number:");
            }
       }

        return number;
    }


    public static double readLineDouble()
    {
        String inputString = null;
        double number = -9999;//To keep the compiler happy.
                              //Designed to look like a garbage value.
        boolean done = false;

        while (! done)
        {
            try
            {
                inputString = readLine();
                inputString = inputString.trim();
                number = (Double.valueOf(inputString).doubleValue());
                done = true;
            }
            catch (NumberFormatException e)
            {
                System.out.println(
                                "Your input number is not correct.");
                System.out.println("Your input number must be");
                System.out.println("an ordinary number either with");
                System.out.println("or without a decimal point,");
                System.out.println("such as 42 or 9.99");
                System.out.println("Please, try again.");
                System.out.println("Enter a whole number:");
            }
        }

        return number;
    }


    public static float readLineFloat()
    {
        String inputString = null;
        float number = -9999;//To keep the compiler happy.
                              //Designed to look like a garbage value.
        boolean done = false;

        while (! done)
        {
            try
            {
                inputString = readLine();
                inputString = inputString.trim();
                number = (Float.valueOf(inputString).floatValue());
                done = true;
            }
            catch (NumberFormatException e)
            {
                System.out.println(
                                "Your input number is not correct.");
                System.out.println("Your input number must be");
                System.out.println("an ordinary number either with");
                System.out.println("or without a decimal point,");
                System.out.println("such as 42 or 9.99");
                System.out.println("Please, try again.");
                System.out.println("Enter a whole number:");
            }
        }

        return number;
    }

    public static char readLineNonwhiteChar()
    {
        boolean done = false;
        String inputString = null;
        char nonWhite = ' ';//To keep the compiler happy.

        while (! done)
        {
            inputString = readLine();
            inputString = inputString.trim();
            if (inputString.length() == 0)
            {
                System.out.println(
                                "Your input is not correct.");
                System.out.println("Your input must contain at");
                System.out.println(
                              "least one nonwhitespace character.");
                System.out.println("Please, try again.");
                System.out.println("Enter input:");
            }
            else
            {
                nonWhite = (inputString.charAt(0));
                done = true;
            }
        }

        return nonWhite;
    }

    public static boolean readLineBoolean()
    {
        boolean done = false;
        String inputString = null;
        boolean result = false;//To keep the compiler happy.

        while (! done)
        {
            inputString = readLine();
            inputString = inputString.trim();
            if (inputString.equalsIgnoreCase("true")
                   || inputString.equalsIgnoreCase("t"))
            {
                result = true;
                done = true;
            }
            else if (inputString.equalsIgnoreCase("false")
                        || inputString.equalsIgnoreCase("f"))
            {
                result = false;
                done = true;
            }
            else
            {
                System.out.println(
                                "Your input number is not correct.");
                System.out.println("Your input number must be");
                System.out.println("one of the following:");
                System.out.println("the word true,");
                System.out.println("the word false,");
                System.out.println("the letter T,");
                System.out.println("or the letter F.");
                System.out.println("You may use either uppercase");
                System.out.println("or lowercase letters.");
                System.out.println("Please, try again.");
                System.out.println("Enter input:");
            }
         }

        return result;
    }

    public static char readChar()
    {
        int charAsInt = -1; //To keep the compiler happy
        try
        {
            charAsInt = System.in.read();
        }
        catch(IOException e)
        {
            System.out.println(e.getMessage());
            System.out.println("Fatal error. Ending Program.");
            System.exit(0);
        }

        return (char)charAsInt;
    }

    public static char readNonwhiteChar()
    {
      char next;

      next =  readChar();
      while (Character.isWhitespace(next))
          next =  readChar();

      return next;
    }

}
compila la clase, si lo notaste los metodos son de tipo "static", entonces, no es necesario creear objeto de esta clase, unicamente pon el archivo .class en la misma carpeta que tu aplicacion.

para usarla solamente seria asi:

String mytext = MeterDatos.readLine();
double myVar = MeterDatos.readLineDouble();
etc....
__________________
Don't hate the languaje, hate the runtime environment
Crysfel's Blog :: Blog de programación, JAVA,PHP, AJAX, JavaScript, CSS y otras hierbas

Última edición por stock fecha: 18/03/05 a las 14:08:09.
  Responder Con Cita
Antiguo 08/04/05, 15:18:18   #9 (permalink)
stock tiene algunos puntos positivos de karma
 
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
stock is offline  
Tema: Exception's
Pregunta: Como manejo las Exepciones y que son??
Respuesta: Las Exceptions son lanzadas por algunos metodos, y se lanzan cuando sucede algun error con el metodo, por ejemplo cuando una Base de Datos no se conecta correctamente o cuando no encuentra una tabla en la base de datos, etc.... los metodos lanzan exepciones que nos avisan que a ocurrido mal, cuando ocurre esto, tenemos 2 alternativas, Relanzarlas o Capturarlas, si las queremos relanzar pues no sabriamos que sucedio, en cambio si las capturamos podemos mostrar el error o mandar un mensaje en especifico.

Para relanzar las exeception unicamente le agregamos throws Exception al metodo.
Código PHP:
public class LanzarExceptions{
        public static 
void main(String arg[])throws Exception{
                
int num;
                
num Integer.parseInt(arg[0]);
                
System.out.println("El numero introducido es: " num);
        }

Para capturarlas usamos TRY,CATCH, FINALLY algo asi:
Código PHP:
public class CapturarExceptions{
     public static 
void main(String arg[]){
          
int num;
          try{
                
num Integer.parseInt(arg[0]);
                
System.out.println("El numero introducido es: " num);
          }catch(
Exception error){
                
System.out.println("El numero introducido no es valido, asegurate de que no contenga letras y que sea un numero entero. El error es: " error);
          }
           
finally{
                
//do nothing jejejeje :)
          
}
     }

Si te fijaste es mejor capturarlas y asi mostrar un mensaje con el error ocacionado.

-------- Agosto 15, 2006 -----------

Cabe mencionar que tambien podemos capturar diferentes errores, y desplegar diferentes mensajes o realizar otras cosas, dependiendo del error generado, en los ejemplos anteriores unicamente he puesto Exception, pero tembien existen clases que extienden de esta y que son mas especificas, como por ejemplo ClassNotFoundException, IOException,BadLocationException, etc... y todas estas heredan de la superclase Exception, ahora bien para capturar una por una lo hacemos asi:

Código PHP:
public class Capturar{
     public static 
void main(String arg[]){
          
int num;
          try{
                
num Integer.parseInt(arg[0]);
                
System.out.println("El numero introducido es: " num);
          }catch(
ArrayIndexOutOfBoundsException error){
                  
System.out.println("Es necesario pasar un numero como parametro.");
          }catch(
NumberFormatException e){
                  
System.out.println("La entrada "+arg[0]+" no es un numero!");
          }
finally{
                
//do nothing jejejeje :)
          
}
     }


-------- Febrero 8, 2006 -----------

Es importante mencionar que el bloque finally Siempre se ejecuta, independientemente de que se ocacione un error o no, esto es muy util cuando trabajamos con base de datos, pues nos aseguramos de cerrar la conexion a la DB y no dejarla abierta.
__________________
Don't hate the languaje, hate the runtime environment
Crysfel's Blog :: Blog de programación, JAVA,PHP, AJAX, JavaScript, CSS y otras hierbas

Última edición por stock fecha: 15/08/06 a las 15:14:31. Razón: Anotaciones extras
  Responder Con Cita
Antiguo 11/04/05, 18:54:47   #10 (permalink)
stock tiene algunos puntos positivos de karma
 
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
stock is offline  
Tema: Archivos
Pregunta: Como puedo escribir y leer un archivo??
Respuesta: Para poder escribir o leer un archivo, usamos la clase FileWriter para escribir y FileReader para leer el contenido, despues creamos unos buffers para poder extraer el contenido o bien para escribir el contenido, tal y como se muestra en el codigo siguiente.

Código PHP:
import java.io.*;

public class 
Insertar{
    public static 
String Archivo;
    
    
Insertar(String arch){
        
this.Archivo arch;
    }
    
    public static 
void Escribir(String datos){
        try
        {
            
FileWriter fw = new FileWriter(Archivo,true);
            
BufferedWriter bw = new BufferedWriter(fw);
            
PrintWriter escritor = new PrintWriter(bw);
            
escritor.println(datos);
            
escritor.close ();
        }
        catch(
Exception e)
        {
            
System.out.println("\n\nError: " e);
        }
    }
    
    public static 
String Leer(){
        
String texto;
        
String txt = new String();
        try{
            
FileReader fr = new FileReader(Archivo);
            
BufferedReader lector = new BufferedReader(fr);
            
texto lector.readLine();
            while(
texto != null)
            {
                
txt txt.concat(texto);
                
texto lector.readLine();
            }
            
lector.close ();
        }catch(
Exception err){
            
System.out.println("Error: " err);
        }
        return 
txt;
    }
    
    public static 
void main(String cvr[]){
        
Insertar arch = new Insertar("myarchivo.txt");
        
arch.Escribir("Hey que ondas??");
        
System.out.println(arch.Leer());
    }

__________________
Don't hate the languaje, hate the runtime environment
Crysfel's Blog :: Blog de programación, JAVA,PHP, AJAX, JavaScript, CSS y otras hierbas
  Responder Con Cita
Antiguo 22/04/05, 08:42:17   #11 (permalink)
stock tiene algunos puntos positivos de karma
 
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
stock is offline  
Tema: Socket's
Pregunta: Como hagouna conexion UDP ??
Respuesta: Una conexion UDP es para establecer una comunicacion, no es necesario establecer una conexion entre las dos maquinas para enviar el mensage, la maquina puede enviar el mensage y no se serciora de que halla llegado, solo lo envia a una IP especificada y si esa IP estaba escuchando el puerto, entonces llegara correctamente el mensage, sino el paquete se perdera, el siguiente ejemplo es un Chat en modo consola:

Código PHP:
/*
* Author: Crysfel Villa
* Created: Friday, April 22, 2005 9:40:46 AM
* Modified: Friday, April 22, 2005 9:40:46 AM
*/

import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.net.InetSocketAddress;
import java.net.InetAddress;

public class 
Chat extends Thread
{
  static 
DatagramSocket ds=null;
  static 
InetAddress ia=null;
  static 
int puerto 1020;
  static 
String maxCadena null;
  static 
String usuario;
    
  static 
void conectar()
  {
    try
    {
      
InetSocketAddress isa=new InetSocketAddress("123.14.254.124",puerto);
      
ia isa.getAddress();
      
ds = new DatagramSocket(puerto);
      
System.out.println("Socket conectado!");
    }
    catch(
Exception e)
    {
      
System.out.println("Error al conectar\n"+e);
    }
  }
  
  static 
void enviar(String cadena)
  {
    
byte enviar[];
    
int longitud cadena.length();
    
enviar cadena.getBytes();
    try
    {
      
DatagramPacket dp = new DatagramPacket(enviar,longitud,ia,puerto);
      
ds.send(dp);
      
System.out.println(cadena);
    }
    catch(
Exception e)
    {
      
System.out.println("Error al enviar mensaje\n"+e);
    }
  }
  
  static 
void recibir()
  {
    
byte nada[] = maxCadena.getBytes();
    
DatagramPacket dp = new DatagramPacket(nada,maxCadena.length());
    try
    {
      while (
true)
      {
        
ds.receive(dp);
        if (
dp!=null)
        {
          
nada dp.getData();
          for (
int m=0m<=nada.length-1m++)
            
System.out.print((char)nada[m]);
          
System.out.println();
          break;
        }
      }
    }
    catch(
Exception e)
    {
      
System.out.println("Error al recibir mensaje\n"+e);
    }
  }
  
  static 
void cerrar()
  {
    
ds.close();
    
System.out.println("Socket cerrado!");
  }
  
  public static 
void main(String a[])
  {
    
maxCadena = new String("                                                                                                               "+
        
"                                                                                                                                  ");
    
String msg "";
    
conectar();
    
usuario a[0];
    
enviar(usuario " Esta On-Line");
    do{
        
recibir();
        
System.out.print("-> ");
        
msg MeterDatos.readLine();
        if(
msg.equals("exit"))
            break;
        else
            
enviar(usuario " Said: " msg);
    }while(
true);
    
cerrar();
  }

__________________
Don't hate the languaje, hate the runtime environment
Crysfel's Blog :: Blog de programación, JAVA,PHP, AJAX, JavaScript, CSS y otras hierbas
  Responder Con Cita
Antiguo 22/04/05, 09:13:14   #12 (permalink)
stock tiene algunos puntos positivos de karma
 
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
stock is offline  
Tema: Socket's
Pregunta: como hago una conexion TCP ??
Respuesta: Una conexion TCP necesita establecer primeramente la conexion entre el cliente y el servidor, donde el servidor estara corriendo y escuchando a un determinado puerto al que el cliente se conectara, cuando la conexion se establece correctamente entonces el cliente manda un mensage y el servidor le responde deacuerdo a lo que halla recibido, Este es un ejemplo muy simple de una coneccion TCP:

El Servidor:
Código PHP:
/*
 * Author: Cryfel Villa
 * Created: sábado, 17 de julio de 2004 6:26:35
 * Modified: sábado, 17 de julio de 2004 6:26:35
 */

import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.BufferedOutputStream;

public class 
Servidor extends Thread
{
  
ServerSocket server;
  public 
Servidor()
  {
    
//MANDAMOS LLAMAR AL CONSTRUCTOR DE LA CLASE "Thread" QUIEN ES LA
    //SUPERCLASE DE ESTA CLASE, ASI NOSOTROS CREAMOS LOS HILOS Y DEMAS COSAS
    //LE MANDAMOS UN IDENTIFICADOR EN ESTE CASO "Servidor" PUEDE SER CUALQUIER COSA
    
super("Servidor");
    try
    {
      
//CREAMOS EL SOCKET DEL SERVIDOR
      
server=new ServerSocket(2002);
      
System.out.println("Servidor corriendo...");
    }
    catch(
Exception e)
    {
      
System.out.println("Error al correr el servidor\n"+e);
      
System.exit(1);
    }
  }
  
  public 
void run()
  {
    
Socket client=null;
    while (
true)
    {
      if (
server==null)
        return;
      try
      {
        
//ESPERA A QUE LLEGUE ALGO
        
client=server.accept();
        
System.out.println("Llegó un cliente!");
      }
      catch(
Exception e)
      {
        
System.out.println("No se pudo conectar con el cliente\n"+e);
        
System.exit(1);
      }
      try
      {
        
InputStreamReader isr=new InputStreamReader(client.getInputStream());
        
BufferedReader is=new BufferedReader(isr);
        
PrintWriter os=new PrintWriter(new BufferedOutputStream(client.getOutputStream()),true);
        
String inStr