PEASANT KING
Commander
- Registriert
- Okt. 2008
- Beiträge
- 2.412
Moin Leute,
ich programmiere ein Serverplugin für Minecraft Bukkit.
Sinn dieses Plugins ist es mittels Eingaben innerhalb einer Website Befehle an Bukkit zu senden und serverseitige Antworten zu erhalten soweit so gut.
Nun habe ich ein kleines Verständnisproblem:
Wenn ich Socketobjekt erstelle und Verbindungen akzeptiere, kann ich entweder lesen vom Socket oder schreiben auf dem Socket.
Ich verstehe nicht wieso ich beim lesen vom Socket, den Socket anschließend schließen muss, damit mir meine PHP Seite das Ergebnis ausgibt.
Weiteres Problem dadurch ist, dass ich nach dem Schließen des Sockets nichts mehr an Bukkit senden kann, da der Socket ja zu ist.
Hier mal ein kleiner Auschnitt meines Codes:
Verbundene Klassen habe ich mal ausgelassen. Können aber nachgereicht werden.
ich programmiere ein Serverplugin für Minecraft Bukkit.
Sinn dieses Plugins ist es mittels Eingaben innerhalb einer Website Befehle an Bukkit zu senden und serverseitige Antworten zu erhalten soweit so gut.
Nun habe ich ein kleines Verständnisproblem:
Wenn ich Socketobjekt erstelle und Verbindungen akzeptiere, kann ich entweder lesen vom Socket oder schreiben auf dem Socket.
Ich verstehe nicht wieso ich beim lesen vom Socket, den Socket anschließend schließen muss, damit mir meine PHP Seite das Ergebnis ausgibt.
Weiteres Problem dadurch ist, dass ich nach dem Schließen des Sockets nichts mehr an Bukkit senden kann, da der Socket ja zu ist.
Hier mal ein kleiner Auschnitt meines Codes:
Code:
public class BukkitCommandServer extends Thread {
boolean socket_active;
Socket socket;
Server bukkit;
String port;
BukkitCommandResponder response;
BukkitCommandInterpreter interprete;
BukkitCommandServer(Server server, String port) {
this.bukkit = server;
this.port = port;
}
@Override
public void run() {
socket_active = true;
try {
ServerSocket server = new ServerSocket(Integer.parseInt(port));
System.out.println("BCOM: Socket activated on port: "+port);
while(socket_active) {
Socket socket = server.accept();
response = new BukkitCommandResponder(socket);
interprete = new BukkitCommandInterpreter(socket);
}
socket.close();
} catch (IOException ex) {
Logger.getLogger(BukkitCommandServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Verbundene Klassen habe ich mal ausgelassen. Können aber nachgereicht werden.