Java XML处理2.08b
我正在通过XML发送登录信息,并收到以下错误: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
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