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

utilizando el package .NET

Estas en el tema de utilizando el package .NET en el foro de Java en Foros del Web. Hace poco que empece con esto de java y estaba intentando lograr conexion entre dos PCs. En el FAQ encontre un ejemplo para hacerlo pero ...
  #1 (permalink)  
Antiguo 16/06/2006, 10:40
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 18 años, 5 meses
Puntos: 0
utilizando el package .NET

Hace poco que empece con esto de java y estaba intentando lograr conexion entre dos PCs. En el FAQ encontre un ejemplo para hacerlo pero tira un error sobre un objeto que no esta definido. Por otro lado cuando lo ejecuto me aparece q se conecta y se queda ahi sin posibilidad de escribir nada.

La unica modificacion q hice fue poner como ip el 127.0.0.1 , faltara definir MeterDatos, cosa que hice como un BufferedReader. Y luego agregar un throw al main. Ahi funciona y prendiendo el programa la consola me tira

Código PHP:
Socket conectado!
Nombre Esta On-Line
Nombre Esta On
-Line                                                                                                                                                                                                                                
-> Exception in thread "main" java.lang.NullPointerException
    at Chat
.main(Chat.java:97
La linea 97 es justamente la del MeterDatos.

Aqui el codigo ue tengo, q me falta modificar?

Código PHP:
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.net.InetSocketAddress;
import java.net.InetAddress;
import java.io.*;

public class 
Chat extends Thread
{
  static 
DatagramSocket ds=null;
  static 
InetAddress ia=null;
  static 
int puerto 3002;
  static 
String maxCadena null;
  static 
String usuario;
  static 
BufferedReader MeterDatos;
    
  static 
void conectar()
  {
    try
    {
      
InetSocketAddress isa=new InetSocketAddress("127.0.0.1",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("-> ");
        try {
            
msg MeterDatos.readLine();
        } catch (
IOException e) {
            
// TODO Auto-generated catch block
            
e.printStackTrace();
        }
        if(
msg.equals("exit"))
            break;
        else
            
enviar(usuario " Said: " msg);
    }while(
true);
    
cerrar();
  }

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 00:47.