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)
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=0; m<=nada.length-1; m++)
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();
}
}