Java XML处理2.08b

Java XML处理2.08b,java,xml,login,processing,Java,Xml,Login,Processing,我正在通过XML发送登录信息,并收到以下错误: org.xml.sax.SAXParseException:文件过早结束。 我的XML文件是: <?xml version="1.0" encoding="UTF-8"?> <info> <miniInfo> <nombre>chichca</nombre> <password>TopSecret</password> </miniIn

我正在通过XML发送登录信息,并收到以下错误:

org.xml.sax.SAXParseException:文件过早结束。

我的XML文件是:

<?xml version="1.0" encoding="UTF-8"?>
<info>
  <miniInfo>
    <nombre>chichca</nombre>
    <password>TopSecret</password>
  </miniInfo>
</info>
这是我的服务器代码(两个类):

(主要)

XML类

public class Informacion {

  XML usuario;
  //XML miniInfo;
  Comunicacion com;
  String mensaje="";
  String pass ="";
  XML [] children;


  public Informacion() {

    com = new Comunicacion();
    com.start();

    usuario = loadXML("data/info.xml");
    children = usuario.getChildren("miniInfo"); //recorro los hijos que hay
  }
  //-------------------------------------

  public  void admon() {
    if (com.getControlador()) {
      registrarse();
      login();
      com.setControlador(false);
    }
  }

  //------------------

  public void registrarse() {

    try {
      mensaje = com.getMensaje(); // para que lo que me llegue sea igual a lo que meto en el xml
      pass = com.getPass();
      println("mensaje "+ mensaje);


      XML miniInfo = new XML ("miniInfo");

      //para agregar el nombre del usuario
      XML nombreXml = new XML("nombre");
      String nombreActual = miniInfo.getContent();
      nombreXml.setContent(mensaje);

      //para agregar las contraseña
      XML passwordXml = new XML("password");
      String passwordActual = miniInfo.getContent();
      passwordXml.setContent(pass);

      miniInfo.addChild(nombreXml);
      miniInfo.addChild(passwordXml);
      usuario.addChild(miniInfo);

      saveXML(usuario, "data/info.xml");
      //println(usuario);
    }
    catch(Exception e) {
    }
  }
  //-------------------------------------------------
  //-------------------------------------------------

  public void login() {
    mensaje = com.getMensaje(); // para que lo que me llegue sea igual a lo que meto en el xml
    pass = com.getPass();
    if (mensaje == null || pass == null) {
      println("aaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    }
    else {
      //XML [] recorrido = usuario.getChildren();  //me recorre los hijos que son miniInfo, donde guardo names y pass

      for (int i=0; i < children.length; i++) {
        XML usuarios = children[i];
        //println("cantidad de miniinfo = " + children.length);
        try {

          //creo un nuevo arreglo
          XML [] hijos  = usuarios.getChildren();//obtengo los hijos de recorrido nombre y pass
          for (int j=0;  j < hijos.length; j++) {

            XML nombre = hijos[0];
            println("nombre = " + nombre );
            String nombreText = nombre.getContent();
            println("contenido = " + nombreText);
            println("lo que llego" + mensaje);
            XML passwrod = hijos[1];
            String passwordText = passwrod.getContent();

            //comparacion del nombre
            if ( pass == passwrod.getContent()) {
              println("INGRESOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO");
            }//cierre  comparacion del nombre
          }
        }
        catch(Exception e) {
          println("ERROR EN LOGIN" + e);
        }
      }
    }
  }//cierre del login
}//informacion
公共类信息{
XML-usuario;
//XML迷你信息;
通信公司;
字符串mensaje=“”;
字符串pass=“”;
XML[]儿童;
公共信息(){
com=新的通信();
com.start();
usuario=loadXML(“data/info.xml”);
children=usuario.getChildren(“miniInfo”);//recorrolos hijos que hay
}
//-------------------------------------
公开广告{
if(com.getControlador()){
注册号();
登录();
com.setControlador(假);
}
}
//------------------
公开作废登记册(){
试一试{
mensaje=com.getMensaje();//para que lo que me llegue sea igual a lo que meto en el xml
pass=com.getPass();
println(“mensaje”+mensaje);
XML miniInfo=新的XML(“miniInfo”);
//乌萨里奥的名字
XML nombreXml=新XML(“nombre”);
字符串nombreActual=miniInfo.getContent();
nombreXml.setContent(mensaje);
//帕拉阿格雷加·拉斯康瑟涅
XML passwordXml=新XML(“密码”);
字符串passwordActual=miniInfo.getContent();
setContent(pass);
miniInfo.addChild(nombreXml);
miniInfo.addChild(密码XML);
usuario.addChild(miniInfo);
saveXML(通常称为data/info.xml);
//println(usuario);
}
捕获(例外e){
}
}
//-------------------------------------------------
//-------------------------------------------------
公共无效登录(){
mensaje=com.getMensaje();//para que lo que me llegue sea igual a lo que meto en el xml
pass=com.getPass();
if(mensaje==null | | pass==null){
println(“aaaaaaaaaaaaaaaaaaaaaaaaaa”);
}
否则{
//XML[]recorrido=usuario.getChildren();//我会记录下你的名字
for(int i=0;i
共享您的服务器和客户端代码,您可以在其中发送和接收xml。您好,这里有所有代码:D
Comunicacion com;

void setup(){
 size(300,300); 
 com = new Comunicacion();
 com.start();
}


void draw(){
  background(200);

}

void mousePressed(){
 com.enviar(); 
}

void keyPressed(){
 if(key == 'e'){
  com.enviarVerificacion();
 } 




import java.net.*;
import java.io.*;

public class Comunicacion extends Thread {
  String mensaje="chichca";
  String pass = "TopSecret";
  String m = "loginVerificacion";
  String n = "loginPass88888";
  Socket socket;
  int port;
  DataInputStream lectura; // leer datos que entran
  DataOutputStream escritura; //escribir datos que salen
  public Comunicacion() {

    try {
      port = 5000;
      socket = new Socket(InetAddress.getLocalHost(), port);
      escritura = new DataOutputStream(socket.getOutputStream());
      println("se conecto el cliente");
    }
    catch(IOException e) {
      println("ERROR creacion comunicacion");
    }
  }//constructor

  public void run() {
    while (true) {
      try {
        sleep(50);
      }
      catch(Exception e) {
        println("ERROR RUN cliente");
      }
    }
  }

  public void enviar() {
    try{
    escritura.writeUTF(mensaje);
    println("cliente envio " + mensaje);

    escritura.writeUTF(pass);
    println("el clieunte envio de pass " + pass );

    escritura.flush();
    //escritura.close();
    }
    catch(IOException e){
     println("EEROR al enviar desde el cliente"); 
    }
  }//cierre envair


  ///////////////////---------------------------------------------


    public void enviarVerificacion() {
    try{
    escritura.writeUTF(m);
    println("cliente envio " + m);

    escritura.writeUTF(n);
    println("el clieunte envio de pass " + n );

    escritura.flush();
    }
    catch(IOException e){
     println("EEROR al enviar desde el cliente"); 
    }
  }//cierre envair
}//final clase
Informacion info;
void setup(){
 size(300,300); 
 info = new Informacion();
}


void draw(){
  info.admon();
}


import java.net.*;
import java.io.*;

public class Comunicacion extends Thread {
  Socket socket;
  ServerSocket serverSocket;
  DataInputStream lectura;
  int port;
  String  mensaje="";
  String pass="";
  boolean controlador = false;

  public Comunicacion() {
    port = 5000;
    try {
      serverSocket = new ServerSocket(port);
      socket = serverSocket.accept();
      lectura = new DataInputStream(socket.getInputStream());
      println("server se coencto");
    }
    catch(IOException e) {
      println("ERROR COMUNICACION SERVER");
    }
  }

  public void run() {
    while (true) {
      try {
        recibir();
        sleep(50);
      }

      catch(Exception e) {
        println("error en el server run");
      }
    }
  }


  public void recibir() {
    try {
      mensaje = lectura.readUTF();
      println("serverrrrrrrr reibio " + mensaje);

      pass = lectura.readUTF();
      println("el  serverrrrrrrrr recibir de pass " + pass);

      if (controlador == false) {
        controlador = true;
      }
    }
    catch(IOException e) {
      println("ERROR del server al recibir" + e);
    }
  }


  public boolean getControlador() {
    return controlador;
  }

  public void setControlador(boolean c) {
    controlador = c;
  }

  public String getMensaje() {
    return mensaje;
  }

  public String getPass() {
    return pass;
  }
}//cierre clase
public class Informacion {

  XML usuario;
  //XML miniInfo;
  Comunicacion com;
  String mensaje="";
  String pass ="";
  XML [] children;


  public Informacion() {

    com = new Comunicacion();
    com.start();

    usuario = loadXML("data/info.xml");
    children = usuario.getChildren("miniInfo"); //recorro los hijos que hay
  }
  //-------------------------------------

  public  void admon() {
    if (com.getControlador()) {
      registrarse();
      login();
      com.setControlador(false);
    }
  }

  //------------------

  public void registrarse() {

    try {
      mensaje = com.getMensaje(); // para que lo que me llegue sea igual a lo que meto en el xml
      pass = com.getPass();
      println("mensaje "+ mensaje);


      XML miniInfo = new XML ("miniInfo");

      //para agregar el nombre del usuario
      XML nombreXml = new XML("nombre");
      String nombreActual = miniInfo.getContent();
      nombreXml.setContent(mensaje);

      //para agregar las contraseña
      XML passwordXml = new XML("password");
      String passwordActual = miniInfo.getContent();
      passwordXml.setContent(pass);

      miniInfo.addChild(nombreXml);
      miniInfo.addChild(passwordXml);
      usuario.addChild(miniInfo);

      saveXML(usuario, "data/info.xml");
      //println(usuario);
    }
    catch(Exception e) {
    }
  }
  //-------------------------------------------------
  //-------------------------------------------------

  public void login() {
    mensaje = com.getMensaje(); // para que lo que me llegue sea igual a lo que meto en el xml
    pass = com.getPass();
    if (mensaje == null || pass == null) {
      println("aaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    }
    else {
      //XML [] recorrido = usuario.getChildren();  //me recorre los hijos que son miniInfo, donde guardo names y pass

      for (int i=0; i < children.length; i++) {
        XML usuarios = children[i];
        //println("cantidad de miniinfo = " + children.length);
        try {

          //creo un nuevo arreglo
          XML [] hijos  = usuarios.getChildren();//obtengo los hijos de recorrido nombre y pass
          for (int j=0;  j < hijos.length; j++) {

            XML nombre = hijos[0];
            println("nombre = " + nombre );
            String nombreText = nombre.getContent();
            println("contenido = " + nombreText);
            println("lo que llego" + mensaje);
            XML passwrod = hijos[1];
            String passwordText = passwrod.getContent();

            //comparacion del nombre
            if ( pass == passwrod.getContent()) {
              println("INGRESOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO");
            }//cierre  comparacion del nombre
          }
        }
        catch(Exception e) {
          println("ERROR EN LOGIN" + e);
        }
      }
    }
  }//cierre del login
}//informacion