hi,
ich schreib gerade an einem programm was einem wi einen socket bereit stellt worüber dieses informationen abruft.
hier einmal die klasse
wenn ich nun eine Anfrage über das wi starte bekomme ich in der console folgende meldeungen angezeigt
test3: [[Spieler1], null, null, null, null, null, null, [Spieler2]]
test2: [[Spieler1], null, null, null, null, null, null, []]
test4: [[Spieler1], null, null, null, null, null, null, []]
23.07.2007 21:26:55: Webinterface Anfrage von : /192.168.0.1 auf Server: Test Server
echo "<option value=\"\">no Players found</option>";
in der ausgabe test2 und test4 sind vom letzten server die infos weg der erste server hat aber nachwievor die richtige info drin.
Ich bin echt etwas ratlos warum er das macht.
Die übergabe aus einer anderen klasse funktioniert richtig wie die ausgae test3 zeigt aber danach verändere ich den String nicht mehr und trotzdem ist die info weg aber nur im letzten server und sonst in keinem.
Falls jemand eine idee hat was ich falsch mache würde ich mich über einen tipp freuen
Gruß BB
ich schreib gerade an einem programm was einem wi einen socket bereit stellt worüber dieses informationen abruft.
hier einmal die klasse
Code:
package de.BigBoss;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Vector;
public class aliasServer
{
private int debug=0;
private DateFormat df = new SimpleDateFormat ("dd.MM.yyyy", Locale.GERMANY); //definieren des Datumsformates
private DateFormat tf = new SimpleDateFormat ("HH:mm:ss", Locale.GERMANY); //definieren des Zeitformates
private MySQL dbv1=null; //neue MySQL Verbindung Instanziiren
private static Vector servplayVektor=null;
private Vector playerVektor=null;
private Vector test;
private String selectbox="";
public aliasServer(MySQL dbv2, int debugger)
{
this.debug = debugger;
this.dbv1 = dbv2;
}//ende aliasServer
public void handleConnection(Socket client)throws IOException
{
Date date = new Date();
int test=0;
//int j=0;
int i=0;
int len;
int splen;
String sqlquery="";
ResultSet result = null;
String res="";
InputStream in = client.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String inString = reader.readLine();
sqlquery = "SELECT * FROM server WHERE id=" + inString + ";";
//System.out.println(sqlquery);
try
{
result = dbv1.ExecQ(sqlquery);
result.next();
res = result.getString("name");
result.close();
}
catch(SQLException sqle)
{
System.out.println("SQLException: " + sqle.getMessage());
System.out.println("SQLState: " + sqle.getSQLState());
System.out.println("VendorError: " + sqle.getErrorCode());
}//ende try/catch
splen = servplayVektor.size();
System.out.println(df.format(date)+ " " + tf.format(date) + ": Webinterface Anfrage von : " + client.getInetAddress() + " auf Server: " + res);
if(splen != 0)
{
playerVektor = (Vector)servplayVektor.get(Integer.parseInt(inString)-1);
if(playerVektor==null)
{
len = 0;
}
else
{
len = playerVektor.size();
}//ende if
User player = new User();
if(len != 0)
{
selectbox="";
test=0;
for (i=0; i<len ;i++)
{
player = (User)playerVektor.get(i);
if(player.getServer().equals(inString))
{
selectbox = selectbox + "echo \'<option value=\'.\"" + player.getId() + "\".\'>\'.htmlentities(\"" + player.getncName() + "\").\'</option>\';\n";
//selectbox = selectbox + "echo \"<option value=\".\"" + player.getId() + "\".\">\".htmlentities(\"" + player.getncName() + "\").\"</option>\";\n";
test=1;
}//ende if
}//ende for
if(test==0)
{
//System.out.println("no Players");
selectbox="echo \"<option value=\\\"\\\">no Players found</option>\";\n";
}//ende if
}
else
{
//System.out.println("no Players");
selectbox="echo \"<option value=\\\"\\\">no Players found</option>\";\n";
}//ende if
}
else
{
selectbox="echo \"<option value=\\\"\\\">no Players found</option>\";\n";
}//ende if
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
System.out.println(selectbox);
out.write(selectbox);
out.newLine();
out.flush();
}//ende handelConnection
/**************************************************************************************************/
public void setPlayerArray(Vector playerAry)
{
servplayVektor = playerAry;
System.out.println("test3: " + servplayVektor);
test = servplayVektor;
}//ende setPlayerArray
/**************************************************************************************************/
public void listen(int Port)
{
ServerSocket server = null;
try
{
server = new ServerSocket(Port);
while(true)
{
Socket client = null;
try
{
client = server.accept();
System.out.println("test4: " + servplayVektor);
handleConnection(client);
}
catch(IOException e)
{
e.printStackTrace();
}//ende try
}//ende while
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
if(server != null)
{
try
{
server.close();
}
catch(IOException e)
{
e.printStackTrace();
}//ende try
}//ende if
}//ende try
}//ende listen
}//ende accespoint
wenn ich nun eine Anfrage über das wi starte bekomme ich in der console folgende meldeungen angezeigt
test3: [[Spieler1], null, null, null, null, null, null, [Spieler2]]
test2: [[Spieler1], null, null, null, null, null, null, []]
test4: [[Spieler1], null, null, null, null, null, null, []]
23.07.2007 21:26:55: Webinterface Anfrage von : /192.168.0.1 auf Server: Test Server
echo "<option value=\"\">no Players found</option>";
in der ausgabe test2 und test4 sind vom letzten server die infos weg der erste server hat aber nachwievor die richtige info drin.
Ich bin echt etwas ratlos warum er das macht.
Die übergabe aus einer anderen klasse funktioniert richtig wie die ausgae test3 zeigt aber danach verändere ich den String nicht mehr und trotzdem ist die info weg aber nur im letzten server und sonst in keinem.
Falls jemand eine idee hat was ich falsch mache würde ich mich über einen tipp freuen
Gruß BB