elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Pila dinamica en C, violacion de memoria????? en: 15 Febrero 2011, 01:18 am
Que tal amigos bueno como viene en el tema tengo un problema con la implemetacion de una pila dinamica.

bueno lo principal de la implementacion ya esta que es pop push el problema viene cuando intento borrar la pila por completo e imprimirla bueno este es el codigo:

Directiva.h
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef int tipo;

typedef struct Pila
{
    tipo dato;
    struct Pila *Sig;
   
}PILAD;

// Funciones R-W

void InsertaPila(PILAD **, tipo);
tipo Remover(PILAD **);
tipo Tope(PILAD *);
void BorraPila(PILAD **);
void ImprimirPila(PILAD *);


Funciones.cpp
Código:
#include "Directiva.h"

void InsertaPila(PILAD **top ,tipo Elem)
{
    PILAD *Aux = (PILAD *)malloc(sizeof(PILAD));
    Aux->dato=Elem;
    Aux->Sig = *top;
    *top = Aux;
}

tipo Remover(PILAD **A)
{
    tipo cont;
    PILAD *aux = (PILAD *)malloc(sizeof(PILAD));
    aux=*A;
   
    if(!aux)
    {
        cont = aux->dato;
        *A = (*A)->Sig;
        free(aux); 
        return  cont;     
    }
   
    else
    {
         printf("Pila vacia");
         exit(-1);
    }
}

tipo Tope(PILAD *A)
{
     return(A->dato);
}

void BorraPila(PILAD **A)
{
     tipo Elem;
     while (!A)
     {
         Elem = Remover (A);
     }

}

void ImprimirPila(PILAD *A)
{
     PILAD *Aux=(PILAD *)malloc(sizeof(PILAD));
     tipo Elem;
     for(Aux=A;Aux->Sig!=NULL;Aux=Aux->Sig)
     {
         Elem = Aux->dato;
         printf(" %d \n",Elem);
     }
}



main.cpp
Código:
#include "funciones.cpp"

main ()
{
     char Opc1;
     int Opc2,aux;
     PILAD *A;
     
     do
     {
         system ("cls");
         printf ("\t\t Estructura Pila Dinamica\n\n\n");
         printf ("1.- Insertar elemento en pila ");
         printf ("\n2.- Quitar elemento de pila");
         printf ("\n3.- Ver ultimo elemento y el numero de elemtos en la pila");
         printf ("\n4.- Vaciar la pila");
         printf ("\n5.- Ver elcontenido de la pila");
         printf ("\n6.- Salir de la aplicacion");
         printf ("\n\n\n  Inserta el numero de la funcion a realizar: ");
         scanf ("%d",&Opc2);
         
         switch(Opc2)
         {
             case 1:
                  system("cls");
                  printf ("\n\n Ingresa un numero para insertar en la pila: ");
                  scanf ("%d",&aux);
                  InsertaPila (&A, aux);
             break;
             
             case 2:
                  system("cls");
                  printf ("\n\n El ultimo elemento extraido de la pila es: %d",Remover(&A));
                 
             break;
             
             case 3:
                  system("cls");
                  printf ("\n\n El ultimo elemento de la pila es: %d",Tope (A));
             break;
             
             case 4:
                  system("cls");
                  BorraPila(&A);
                  printf ("\n\n La pila a sido eliminada exitosamente");
                 
             break;             
           
             case 5:
                  System ("cls");                 
                  ImprimirPila(A);
             break;
 
             case 6:                 
                  exit(-1);
             break;
             
             default:
                   system("cls");
                   printf ("La opcion no es valida");
             break;
         }
         
         
         printf ("\n\nDeseas seguir en esta aplicacion [S/N]: ");
         scanf ("%s",&Opc1);
     }
     while ( Opc1 == 'S'  ||  Opc1 == 's' );     
}


Bueno este fue el codigo el problema viene cuando intento ver o eliminar (Cuando hay elementos) se produce un error de accedo de memoria por favor ayudeme
ya que nesesito el programa lo mas pronto posible de antemano gracias.
2  Sistemas Operativos / GNU/Linux / no se activa la tarjeta wireless en: 30 Julio 2010, 22:00 pm
Bueno tengo una tarjeta wireless broadcom 43225 de una laptop dv6-2190us de hp tengo windows 7 y linux ubuntu 10.04 ambos de 64 bits el problema es que cuando acabe de instalar el ubuntu no corria la tarjeta de red y algunos otros controladores que me pide conexion a red pero e tratado de investigar como activar el wireless y e leido que ya viene instalado junto con el linux pero hay que correr un comando en el kernel:

Código:
:~$ sudo aptitude install bcmwl-kernel-source


 trate y no funciono, luego vi en otro foro que habia que correr el disco de linux y desisntalar el controlador y volverlo a instalar y corriendo un comando para el kernel como sea niguna de las dos cosas funciono por lo cual les pregunto como prodria hacer para activar la tarjeta de red.

pd cabe mencionar que soy muy nuevo en linux por lo cual aun no conozco muchas cosas de linux y si es posible que me pudieran ayudar dandome unos consejos de que programas utilizar ,conmandos baasicos y como podria correr juego etc loque todo linuxero debe saber

gracias.
3  Programación / .NET (C#, VB.NET, ASP) / selecionador de archivos C# en: 8 Julio 2008, 01:16 am
hola de nuevo amigos miren tengo un problema para barear

estoy intentado hacer una aplicacion la cual en una parte nesesita selecionar un archivo para ver su path abrirlo, guardarlo o eliminarlo ya saben un selecionador de archivos el problema es que no encuentro un codigo mas o menos desente que me ayude a resolver mi problema ya e buscado en google y msdn, pero a pesar de eso vi un code que mas o menos me convencion el problema es que compila bien pero cuando ejecuto el codigo por medio de un boton se traba y nisiquiera me arroja una excepcion

Código:
private void abrirToolStripMenuItem_Click(object sender, EventArgs e)
        {

            try
            {
                FileSystemWatcher watcher = new FileSystemWatcher();
               
                watcher.Path = @"C:\";

                // Setup things to be on the lookout for

                watcher.NotifyFilter = NotifyFilters.FileName;

                // Setup filter for specific file types

                watcher.Filter = "*.*";

                // Define event handlers

                watcher.Created += new FileSystemEventHandler(OnChanged);

                // Begin watching the directory

                watcher.EnableRaisingEvents = true;

                // Wait for user to quit program

                Console.WriteLine(@"Press q to quit");

                while (Console.Read() != 'q') ;
            }
            catch (Exception)
            {
                MessageBox.Show("La prueba fallo");
            }
        }

        private static void OnChanged(object source, FileSystemEventArgs e)
        {

        }

alguien tendra una idea de como hacer lo que quiero
4  Programación / .NET (C#, VB.NET, ASP) / matriz c# en: 28 Junio 2008, 22:29 pm
hola! denuevo

Mire me acaban de dejar una tarea sobre un programa que calcule promedios por medio de arrys el codigo se ejecuta bien pero cuando finaliza me arroja una excepcion : IndexOutOfRangeException

my sourse:

Código:

        int i = 0, j = 0, filas = 7;
        double d;
        System.Console.WriteLine("\nEscribe el numero de alumnos");
        int numa = Convert.ToInt16(Console.ReadLine());
        double[,] table = new double[numa, filas];
        for (i = 0; i < numa; i++)
        {
            Console.WriteLine("ingresa la calificacion de el alumno en español {0}", i + 1 );
            table[i, 0] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno matematicas {0}", i + 1 );
            table[i, 1] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno fisica {0}", i + 1);
            table[i, 2] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno quimica {0}", i + 1);
            table[i, 3] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno geografia {0}", i + 1);
            table[i, 4] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno historia {0}", i + 1);
            table[i, 5] = Int32.Parse(Console.ReadLine());
        }
        Console.Clear();
        System.Console.WriteLine("\nLas calificaciones de alumno son:\n\n");
        for (j = 0; j <= numa; j++)
        {
            d = (table[j, 0] + table[j, 1] + table[j, 2] + table[j, 3] + table[j, 4] + table[j, 5]) / 6;//Exception???
            table[j, 6] =d;
            System.Console.WriteLine("Del alumano {0}\n",j + 1 );
            System.Console.WriteLine("Español : {0}" ,table[j,0]);
            System.Console.WriteLine("Matematicas : {0}", table[j, 1]);
            System.Console.WriteLine("Fisica : {0}", table[j, 2]);
            System.Console.WriteLine("Quimica : {0}", table[j, 3]);
            System.Console.WriteLine("Geografia : {0}", table[j, 4]);
            System.Console.WriteLine("Historia : {0}", table[j, 5]);

            if (table[j, 6] <= 6)
            {
                System.Console.WriteLine("\nEl alumno reprobo con un promedio de: {0}", table[j, 6]);
            }
            else if (table[j, 6] >= 7)
            {
                System.Console.WriteLine("\nEl alumno aprobo con un promedio de: {0}",table[j,6]);
            }
        }

cual es mi error? :-\ :huh:
5  Programación / Java / duda con conexión sql java en: 12 Junio 2008, 01:21 am
hola

miren tengo cierta dudas con un caodigo que me encontre para conectar sql con java el problema es que me arroja cierto error a la hora de compilarlo
El codigo:

Código:

package conexionsql;
import java.sql.*;
import java.sql.Connection;
import java.io.*;


public class conexion
{
   
    private java.sql.Connection  con = null;
    private final String url = "jdbc:microsoft:sqlserver://";
    private final String serverName= "localhost";
    private final String portNumber = "1433";
    private final String databaseName= "Mifex";
    private final String userName = "miki";
    private final String password = "123456";
    private final String selectMethod = "cursor";
   
     
   
     
     private String getConnectionUrl(){
         return url+serverName+":"+portNumber+";databaseName="+databaseName+";" + "selectMethod="+selectMethod+";";
     }
     
     private java.sql.Connection getConnection(){
         try
         {
             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
             con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
             if(con!=null)
                System.out.println("Conexión correcta.");
         }
         catch(Exception e){
             e.printStackTrace();
             System.out.println("Error de seguimiento en getConnection() : " + e.getMessage());
         }
         return con;
     }

   
     public void displayDbProperties(){
         java.sql.DatabaseMetaData dm = null;
         java.sql.ResultSet rs = null;
         try{
             con= this.getConnection();
             if(con!=null){
                 dm = con.getMetaData();
                 System.out.println("Información del controlador");
                 System.out.println(" Nombre del controlador: "+ dm.getDriverName());
                 System.out.println(" Versión del controlador: "+ dm.getDriverVersion ());
                 System.out.println(" Información de la base de datos ");
                 System.out.println(" Nombre de la base de datos: "+ dm.getDatabaseProductName());
                 System.out.println(" Versión de la base de datos: "+ dm.getDatabaseProductVersion());
                 System.out.println("Catálogos disponibles ");
                 rs = dm.getCatalogs();
                 while(rs.next()){
                     System.out.println(" catálogo: "+ rs.getString(1));
                 }
                 rs.close();
                 rs = null;
                 closeConnection();
             }
             
             else System.out.println("Error: No hay ninguna conexión activa");
         }
         
         catch(Exception e){
             e.printStackTrace();
         }
         dm=null;
     }     
     
     private void closeConnection(){
         try{
             if(con!=null) con.close();
             con=null;
         }
         
         catch(Exception e){
             e.printStackTrace();
         }
     }
     
     public static void main(String[] args) throws Exception {
         conexion myDbTest = new conexion();
         myDbTest.displayDbProperties();
     }
}

Y el error:

Código:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
Error de seguimiento en getConnection() : com.microsoft.jdbc.sqlserver.SQLServerDriver
Error: No hay ninguna conexión activa
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at conexionsql.conexion.getConnection(conexion.java:28)
        at conexionsql.conexion.displayDbProperties(conexion.java:46)
        at conexionsql.conexion.main(conexion.java:87)


por lo buscando en google paresia ser que le faltaba un drive el sqljdbc.jar pero lo importe a la biblioteca pero persiste el error este es el prinsipal error pero tambien tengo otro problema en este codigo pide un usuario y contraseña para entar a la base de datos hay algun codigo para cuando la base de datos se encuentra con instancia de usuario?

aprovechando el post:

como puedo programar aplicaciones para movil en especial el iphone que son toushscreen y que tipo de api tengo que importar para hacerlo y lo mas importante como programo ese tipo de aplicaciones tomando encuenta que tengo algo de conosimiento en j2me?
6  Programación / .NET (C#, VB.NET, ASP) / conexion base de datos sql con c# en: 10 Mayo 2008, 20:40 pm
Hola que tal

mira tengo un problema para conectar sql server express 2005 con un programa que estoy haciendo con C# en visual studio 2008

bien ya trate de de aserlo por medio del asistente pero solo se conecta no puedo manupular la base de datos para hacer una consulta y me crea un cajerodata set y trae la base de datos cajero.mdf a la carpeta pincipal

tambien trate de hacer conexion de forma manul pero a diferencia de el asistente simplemente me dice que no se puede conectar y me aparece la siguiente conexion

Código:
System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at WindowsFormsApplication1.Form1.conexion() in C:\akuma\Proyectos c#\practicas\cajero automatico\cajero automatico\Form1.cs:line

Y la conexion no deberia ser problema puesto que el asistente si se conecta y este es el codigo del programa


Código:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.Sql;
using System.Data.SqlClient;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {           
        }

        private void button2_Click(object sender, EventArgs e)
        {
            conexion();
        }
               
        private void conexion()
        {
            SqlConnection conn = new SqlConnection("Data Source=/.SQLEXPRESS;AttachDbFilename=cajero.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
            try
            {

                conn.Open();
                MessageBox.Show("se conecto exitosamente");

            }
            catch (Exception e)
            {
                MessageBox.Show("no se pudo conectar error");
                txtus.AppendText(Convert.ToString(e));
            }             

        }
    }
}

Ya llevo tiempo con esto deverdad espero que me puedan ayudar saludos
7  Programación / .NET (C#, VB.NET, ASP) / Una ayudadita no? peleandome con un gato grandote c# en: 21 Abril 2008, 23:34 pm
Hola denuevo yo miren haora estoy haciendo un juego en c# (visual estudio 2008)donde es una espesie de gato gigante.

bien les explico las reglas puesto que supongo que algunos no lo conoce a por cierto el juego existe solo que no se como se llama  :xD

reglas

1.- consta de 2 jugadores,  cada uno tiene un turno alternamente pueden presionar un boton que se marcara segun el jugador X ú O en cualquier parte del tablero en su turno

2.- si en algun momento un jugador junta 5 de sus simbolos horizontales, verticales o diagonales gana sin ningu espacio vasio u otro caracter me refiero XXXXX bien no XXXOXX o algo hasi

miren miproblema esta en determinar el ganador podria hacerse con if pero tardaria milenios  :o esta es una forma de como pensaba hacerle y esta linea iria en la funcion GanaO
(ya lo veran en el codigo) por ejemplo:
Código:
if (button1.Text.Equals("O") && button2.Text.Equals("O") && button3.Text.Equals("O") && button4.Text.Equals("O") && button5.Text.Equals("O"))
{
messagebox.show ("Gana jugador O");
}
else if () /*y asi hasta acabar con todas las posibles victorias de O y X*/
{
}

a por cierto mis bottones estan ordenados de izquierda a derecha de arriva a bajo es decir
button1  2  3..
13  14 15 ..

para mas informacion

y no se si alguien prodria ayudarme a redusir ese codigo que pretendo hacer


bien una imagen de tablero y formulario



bien el codigo del formulario

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            radioButton1.Select();      /*seleciona de inicio radio button 1*/
            radioButton1.Enabled = false;        /*inabilita el radio button para que no alteren los turnos*/
            radioButton2.Enabled = false;
        }

        private void sendN(object sender, EventArgs e)  /*Cada vez que un boton del grupo tablero es clikeado viene a este void */
        {
            Button bnt = (Button)sender;    /* bnt gana las propiedader de el boton para luego pasarselas al boton clikeado*/
            if (radioButton1.Checked)   /*viene a esta linea del codigo si es el turno de X*/
            {
                bnt.Text = "X";      /*Aqui se escribe el texto en este caso X por que es el turno de X*/
                bnt.Enabled = false;    /*aqui el boton queda inutilizado para que ninguno de los jugadores pueda clikearlo otra vez*/
                radioButton2.Select();  /*aqui seleccionamos radiobutton2 o jugador "O" que es el proximo en el turno*/
                label3.Text = "Es el turno de el jugador O";    /*aqui escribimos en un label cual es el turno correspondiente*/
            }
            else if (radioButton2.Checked)  /*el proseso anterior es el mismo solo que haora ablamos del jugador O*/
            {
                bnt.Text = "O";
                bnt.Enabled = false;
                radioButton1.Select();
                label3.Text = "Es el turno de el jugador X";
            }
            this.GanaO();   /*aqui revisa si O es el ganador*/
            this.GanaX();   /*aqui revisa si X es el ganador*/
        }

        private void SALIR_Click(object sender, EventArgs e)
        {
            DialogResult a = MessageBox.Show("¿De verdad desas salir de esta aplicacion?", "Confimacion", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                MessageBoxDefaultButton.Button2, MessageBoxOptions.ServiceNotification);     /*MUESTRA UN CUADRO DE DIALOGO EL CUAL PREGUNTA SI SALIR*/
            if (a == DialogResult.Yes)  /*si presiono que si viene a este if*/
            {
                Dispose();      /*Cierra la aplicacion*/
            }
            else
            {
                /*no hace nada*/
            }
        }
       
        private void GanaX()
        {
            // aqui se supone que deberia verificar si X gana
        }
        private void GanaO()
        {
            //aqui se que verifica si O gano
        }

    }
}


bien cuando se clikea un boton del tablero va a la funcion sendN por el evento click_event
pues de antemano se los agradezco si tiene dudas con el codigo o el metodo pues aqui estoy

graxx ;D



8  Programación / .NET (C#, VB.NET, ASP) / Cuadro de texto C# en: 28 Marzo 2008, 20:14 pm
Hola que tal!! :D

Miren estoy tratando de enviar un cuardro de texto en el cual se le informa al usuario aserca de un error (Excepcion) pero no tengo idea  :huh: de como ponerla ya que apenas estoy familiarizandome con la interface garfica de C# (Si alguien tan caritativo tenga un manual de como trabajar con C# y sus interface grafica)
o en su defecto un codigo para hacer mandar un cuadro de texto.

a otra cosa Estoy trabajando con visual c# 2008 para mayor referencia

Gracias espero su respuesta.
9  Programación / Java / Duda con con codigo chat ayuda!!! en: 26 Marzo 2008, 19:38 pm
haber aqui va de nuevo moderadores

Mi problema es con Java ya que estoy intentando hacer un programa donde haya una comunicacion entre un cliente y un servidor (un chat) el problema es que ya revise mi codigo de arriba para ver si habia algun error e consultado con maestros y en otros foros y en teorial en el codigo fuente no deberia haber ningun erro vien este es el problema

tengo dos programas un que es el cliente en este no hay ningun problema pero lo pondre para mayor referencia

 codigo de el cliente
Código:
import java.io.PrintStream;
import java.net.*;
import java.awt.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;

public class ClienteGraficoChat extends JFrame
{
    private static final int PUERTO=9000;
    protected Socket socketCliente;
    private Sesion sesion;
    protected PrintStream salida;
    protected BufferedReader entrada;
   
    private JPanel contentPane;
    private JTextField txtMensaje=new JTextField ();
    protected JTextArea txtArea=new JTextArea ();
    private JButton btnCerrar=new JButton ();
    private JScrollPane scrollPane = new JScrollPane ();
    private JLabel lblTexto = new JLabel ();
   
    public ClienteGraficoChat ()
    {
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        iniciar();
        try
        {
            socketCliente = new Socket ("Local Host",PUERTO);
            salida = new PrintStream(socketCliente.getOutputStream());
            entrada = new BufferedReader (new InputStreamReader(socketCliente.getInputStream()));
            sesion = new Sesion(this);
            System.out.println("Arrancando cliente");           
        }
        catch (IOException e2)
        {
            if (socketCliente != null)
            {
                try
                {
                    socketCliente.close();
                }
                catch (IOException e3)
                {
                }
               
               
            }
            errorFatal(e2,"Fallo Al Intentar Conectar Con el servidor");
        }       
    }
     
    public static void main (String []args) throws IOException, ConnectException
     {
        try
        {
            System.out.println("Arrancando CLiente");
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            ClienteGraficoChat f=new ClienteGraficoChat ();
       
            Dimension ScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = f.getSize();
       
            if (frameSize.height > ScreenSize.height)
            {
                frameSize.height =ScreenSize.height;           
            }
            if (frameSize.width > ScreenSize.width)
            {
                frameSize.width = ScreenSize.width;
            }
            f.setLocation((ScreenSize.height - frameSize.height)/2, (ScreenSize.width - frameSize.width)/2);
            f.show();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            errorFatal(e,"Error al Gestionar la apariencioa y el estilo");
        }
       
     }
    private void iniciar ()
        {
            contentPane = (JPanel)this.getContentPane();
            txtMensaje.setBounds(new Rectangle(117,49,256,29));
            txtMensaje.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e)
                {
                    txtMensaje_actionPerformed(e);
                }
            });
            contentPane.setLayout(null);
            this.setSize(new Dimension (400,400));
            this.setTitle("Chat");
            btnCerrar.setText("CERRAR");
            btnCerrar.setBounds(new Rectangle(150, 323, 76 ,29));
            btnCerrar.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e)
                {
                    btnCerrar_actionPerformed(e);
                }
            });
            scrollPane.setBounds(new Rectangle(9,106,370,205));
            lblTexto.setBackground(Color.red);
            lblTexto.setFont(new java.awt.Font("Dialogo",1,12));
            lblTexto.setText("Escriba el texto");
            lblTexto.setBounds(new Rectangle(17, 49, 87, 32));
            contentPane.add(txtMensaje, null);
            contentPane.add(btnCerrar, null);
            contentPane.add(lblTexto, null);
            contentPane.add(scrollPane, null);
            scrollPane.getViewport().add(txtArea, null);
      }   
     
    protected void processWindowEvent(WindowEvent e)
    {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING)
        {
            salida.println("Desconectar");
        }
    }
    void txtMensaje_actionPerformed(ActionEvent e)
    {
        salida.println(txtMensaje.getText());
        txtMensaje.setText("");
    }
    void btnCerrar_actionPerformed(ActionEvent e)
    {
        salida.println("Desconectar");
    }
    private static void errorFatal(Exception exception,String mensajeError)
    {
        exception.printStackTrace();
        JOptionPane.showMessageDialog(null,"Error Fatal"+System.getProperty("line.separator")+mensajeError, "Informacion para el usuario",JOptionPane.WARNING_MESSAGE);
        System.exit(-1);
    }
    class Sesion extends Thread
    {
        private ClienteGraficoChat clienteChat;
        public Sesion(ClienteGraficoChat clienteChat) throws IOException
        {
            this.clienteChat = clienteChat;
            start();
        }
       
        public void run()
        {
            String fin1="Adios";
            String fin2="Hasta la vista";
            String linea = null;
            try
            {
                while ((linea=clienteChat.entrada.readLine())!=null)
                {
                    clienteChat.txtArea.setText(clienteChat.txtArea.getText()+linea+System.getProperty("linea Separador"));
                    if (linea.equals(fin1)|| linea.equals(fin2))
                    {
                        try
                        {
                            this.sleep(5000);
                        }
                        catch (java.lang.InterruptedException e1)
                        {
                           
                        }
                        break;
                    }
                }                   
            }
        catch (IOException e2)
        {
            e2.printStackTrace();
        }
            finally
            {
                try
                {
                    clienteChat.dispose();
                    clienteChat.entrada.close();
                    clienteChat.salida.close();
                    clienteChat.socketCliente.close();
                }
           
                catch (IOException e3){}
                System.exit(-1);
            }
            }
        }

    }

Bien el problema esta en el servidor ya que el la linea 108 hay un error de compilacion el cual me dice (no se encuentra identificado).

Código:

import java.io.*;
import java.net.*;
import javax.swing.*;
import java.util.*;

public class ServidorChat
{
    private static final int PUERTO=9000;
    protected static final int TIEMPO_DE_DESCONEXION_AUTOMATICA=600000;
    private ServerSocket socketServidor;   
   
    public static void main (String []args)
    {
        new ServidorChat();       
    }
   
    public ServidorChat()
    {
        System.out.println("Arrancando Servidor por el puerto "+PUERTO);
        arrancarServidor();
        procesarClientes();       
    }
   
    private void arrancarServidor()
    {
        try
        {
            socketServidor = new ServerSocket(PUERTO);
            System.out.println("El servidor esta en marcha escuchando por el puerto: "+PUERTO);
        }
        catch (java.net.BindException e1)
        {
            String mensaje="No se puede arrancar el servido es posible que el puerto "+PUERTO+" este ocupado";
            errorFatal(e1,mansaje);
        }
        catch (java.lang.SecurityException e2)
        {
            String mansaje="No se puede arrancar el servidor es posible que el puerto "+PUERTO+" Tenga restricciones de seguridad";
            errorFatal(e2,mensaje);
        }
        catch (IOException e3)               
        {
            String mansaje="IMposible arrancar el servidor";
            errorFatal(e3,mensaje);
        }
    }
    private void procesarClientes()
    {
        Socket socketCliente =null;
        while (true)
        {
            try
            {
                socketCliente = socketServidor.accept();
                try
                {
                    new ThreadServidor(socketCliente);
                }
                catch (IOException e1)
                {
                    if (socketCliente !=null)
                    {
                        try
                        {
                            socketCliente.close();
                        }
                        catch (IOException e2)
                        {
                           
                        }
                    }
                }
            }
            catch (java.lang.SecurityException e3)
            {
                if (socketServidor !=null)
                {
                    try
                    {
                        socketServidor.close();
                    }
                    catch (IOException e4)
                    {
                        //nothing
                    }
                }
                String mensaje="Con su configuracion de seguridad, Los clientes no podran conectarse por el puerto "+PUERTO;
                errorFatal(e3,mensaje);               
            }
            catch (IOException e5)
            {
                //no se hace nada por que no se pudo crear el socket
            }
        }
    }
    public static void errorFatal(Exception excepcion, String mensajeError)
    {
        excepcion.printStackTrace();
        JOptionPane.showMessageDialog(null,"Error Fatal."+System.getProperty("line.separator")+mensajeError,"Informacion Para el usuario",JOptionPane.WARNING_MESSAGE);
        System.exit(-1);
    }
}

class ThreadServidor extends Thread
{
    private String nombreCliente;
    private static String historial = "C:historial.txt";
    private static clientesActivos = new ArryList();
    private Socket socket;
    private BufferedReader entrada;
    private PrintWriter salida;
   
    public ThreadServidor(Socket socket) throws IOException
    {
        this.socket = socket;
        PrintWriter salidaArchivo=null;
        salida=new PrintWriter(socket.getOutputStream(),true);
        entrada = new BufferedReader (new InputStreamReader(socket.getInputStream()));
        escribirHistorial("conexion desde la direccion");
        start();       
    }
   
    public void run()
    {
        String textoUsuario="";
        try
        {
            salida.println("> Bienvenido a este chat.");
            salida.println(">introduce tu nombre");
            nombreCliente = (entrada.readLine()).trim();
            if ((nombreCliente.equals(""))||(nombreCliente==null))
            {
                nombreCliente="invitado";
            }
            Iterator it= clientesActivos.iterator();
            while (it.hasNext())
            {
                if (nombreCliente.equals(((ThreadServidor)it.next()).nombreCliente))
                {
                    nombreCliente = nombreCliente + socket.getPort();
                    break;
                }
            }
            anyadirConexion(this);
            salida.println(">Se le asigno el alias de"+nombreCliente);
            socket.setSoTimeout(ServidorChat.TIEMPO_DESCONEXION_AUTOMATICA);
            while ((textoUsuario=entrada.readLine())!=null)
            {
                if ((textoUsuario=entrada.equals("DESCONECTAR")))
                {
                    salida.println("****************adios************");
                    break;
                }
                else if ((textoUsuario.equals("LISTAR")))
                {
                    escribirCliente (this,">"+clientesActivos());
                }
                else
                {
                    escribirATODOS(nombreCliente+">"+textoUsuario);
                }
            }
        }
        catch (java.io.InterruptedIOException e1)
        {
            escribirCliente(this,">"+"Se paso el tiempo:Conexion Cerrada");
            escribirCliente(this,">"+"Si desea continuar, abra otra sesion");
            escribirHistorial("desconexion Involuntaria por fin de tiempo desde la direccion:");
        }
        catch (IOException e2)
        {
            escribirHistorial("desconexion Involuntaria desde la direccion:");
        }
        finally
        {
            eliminarConexion(this);
            limpiar();
        }
    }
    private void limpiar ()
    {
        if (entrada !=null)
        {
            try
            {
                entrada.close();
            }
            catch(IOException e1)
            {
               
            }       
        }
        if (salida!=null)
        {
            salida.close();
            salida=null;
        }
        if (socket !=null)
        {
            try
            {
                socket.close();
            }
            catch (IOException e2)
            {
               
            }
            socket=null;
        }       
    }
   
    private static synchronized void eliminarConexion(ThreadServidor threadServidor)
    {
        clientesActivos.remove(threadServidor);
    }
   
    private static synchronized void anyadirConexion(ThreadServidor threadServidor)
    {
        clientesActivos.add(threadServidor);
    }
   
    private synchronized void escribirATODOS(string textoUsuario)
    {
        Iterator it=clientesActivos.iterator();
        while (it.hasNext())
        {
            ThreadServidor tmp=(ThreadServidor) it.next();
            if (!(tmp.equals(this)))
           
                escribirCliente(tmp.textoUsuario);
           
        }
       
    }
   
    private synchronized void escribirCliente(ThreadServidor threadServidor,String textoUsuario)
    {
        (threadServidor.salida).println(textoUsuario);
    }
   
    private static synchronized StringBuffer clientesActivos()
    {
        StringBuffer cadena = new StringBuffer();
        for (int i=o;i<clientesActivos.size();i++)
        {
            ThreadServidor tmp = (ThreadServidor) (clientesActivos.get(i));
            cadena.append((((ThreadServidor) clientesActivos.get(i)).nombreCliente)).append("||");
        }
        return cadena;
    }
   
    private synchronized void escribirHistorial(String mensaje)
    {
        PrintWriter salidaArchivo=null;
        try
        {
            salidaArchivo = new PrintWriter(new BufferedWriter(new FileWriter(historial,true)));
            salidaArchivo.println(mensaje+""+socket.getInetAddress().getHostName()+" Por el puerto "+socket.getPort()+" en la fecha "+new Date());
        }
        catch(IOException e1)
        {
            System.out.prinln("Fallo en el archivo historial.");
        }
        finally
        {
            if (salidaArchivo !=null)
            {
                salidaArchivo.close();
                salidaArchivo=null;
            }
        }
    }
}



bueno lo que no e podido descifrar es por que  no la encuentra puesto que se declara un arreglo para reunir todos los clientes conectados al servidor y regresa cadena como resultado entonces no se por que el compilador me dice que no encuentra el identificador

posdata:

Espero deverdad que alguien pueda ayudamer deverdad se los agradecería mucho

posdata2:

Porfavor moderadores ya revise el reglamento y en ningun momento vi que faltara a ninguna regla esepto el de no poner mi codigo en las etiquetas y que por eso borraran el tema, por favor mi unico deseo es aprender y ser parte de foro por lo tanto espero que respeten mi duda y no borren el tema por su atencion gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines