[Java] Screenshot vom server an client senden (via Sockets)?

2 Antworten

Formatiere bitte deinen Code und formuliere deine Frage konkreter.

aus irgendeinem grund kommt immer wieder   wenn ich code bei gutefrage reinstelle...werde die frage bearbeiten

0

Und wo liegt jetzt das Problem?

Liebe Grüße

_

Es funktioniert nicht!

es wird zwar eine datei engelegt names "shotFromServer.png" aber diese ist immer 0 byte groß und hat keinen inhalt

0
@regex9

Jetzt wird doch in die datei geschreiben...aber die dateigröße stimmt nicht. muss den client warten lassen bis der server die dateigröße sendet und dann in die datei schreiben. würde glaube ich das problem lösen.

Ich probire es mal.

und nein - die datei ist nicht 0 byte groß bevor sie gesendet wird da diese dann noch nicht exsestiert. sie wird ja erschaffen sobald der client die datei bekommt

0

do while + try catch Abfrage in Java zur Eingabenkontrolle erzeugt unendlichen Loop

Also ich will in Java eine Methode schreiben die die Eingabe kontrolliert und dann bei korrekter Eingabe den eingegeben Wert zurückgibt. Mein Quellcode sieht so aus

public static int liesInt(String Ausgabe)
{       
    Scanner eingabe = new Scanner (System.in);
    int eingegeben = 0;
    System.out.println(Ausgabe);
    boolean error = true;
    
    do
    {
        try
        {
            eingegeben = eingabe.nextInt();
            error = false;
        }
        catch(InputMismatchException e)
        {
            System.out.println("Bitte geben Sie nur ganze Zahlen ein!");
            error = true;
        }   
    } while (error == true);
            
    return eingegeben;
}

mein problem ist dass er nach dem der catch greift und den error wert auf true gesetzt ist er nicht wieder zum try springt und nicht erneut nach einer eingabe fragt...

wo ist mein fehler eigentlich müsste er nach dem catch wieder oben anfangen beim try aber das passiert nicht

...zur Frage

C - Switch Case - Anagramm?

Hallo,

ich wollte ein Anagramm in C programmieren, nur mit Arrays und den Bibliotheken stdio.h und string.h. Und ich verstehe nicht wo mein Fehler liegt bzw. warum die switch case Anweisung nicht richtig funktioniert. Hier der Code(es wurde im Nachhinhein viel herumgespielt, um den Fehler ausfindig zu machen und zu beheben, dazu musste ich ihn kürzen für die Frage - deswegen so chaotisch):

for(int k = 0 ; k < 31; k++){  //k ist länge des Arrays
        for(int i=0 ; i = '\0' ; i++){
         switch (s1[i]) {              //s1 ist das erste Wort
                case 'a': a1++; break;
                ....
                case 'z': z1++; break;
   }
        for(int i=0 ; i = '\0' ; i++){
         switch (s2[i]) {              //s2 ist das zweite eingegebene Wort
                case 'a': a2++; break;
                ....
                case 'z': z2++; break;
   }

if(a1==a2)&&...(z1==z2){
    printf("%s und %s sind Anagramme!\n", s1, s2);
     }else{
         printf("%s und %s sind keine Anagramme!\n", s1, s2);
         }
return 0;  
}

Funktionsweise: Es werden zwei char Arrays durch Eingabe gespeichert. Dann gehe man in einer Schleife, alle einzelnen Buchstaben eines Wortes durch. Bei jedem Buchstaben wird sein dementsprechender Zähler um 1 erhöht. Dann das selbe für Wort 2. Am Ende schaut man ob die Buchstaben für beiden gleich oft vorkommen, wenn ja dann ist es ein Anagramm, wenn nicht dann ist es kein Anagramm.

Lasse ich mir nach den Switch Anweisungen ausgeben, wie sich die Zähler-Variablen geändert haben, kommt immer die 0. Obwohl eigentlich was hätte gezählt werden müssen. Bin auch noch Anfänger, vielleicht habe ich die switch Anweisungen noch nicht komplett verstanden.

Aber ich habe auch keinen logischen Denkfehler, oder?

Und ich weiß, nicht die eleganteste Lösung und geht wahrscheinlich auch mit meiner Beschränkung noch effizienter, aber ich bin noch Anfänger.

Also ich wäre sehr dankbar über einen Lösungsansatz bzw einer Erklärung warum dies so nicht funktionieren kann.

PS.: Bei der ersten Schleife lautet der Syntax folgendermaßen, da er nicht richtig wiedergegeben wird:

(int k = 0; k <= 31; k++){

mfg werdas34

...zur Frage

Wie funktionieren exceptions in java?

wenn man es mit try und catch schreibt, hab ich gelernt dass man catch(Exception e) schreibt und danach e.printStackTrace ... Aber warum schreibt man nicht Exception e = new Exception(); ??? Und was macht die Methode printStackTrace in der Klasse Exception?

...zur Frage

Microsoft Visual Studio Express 2012 C++ "}" kann nicht mehr eingegeben werden, was tun?

Hallo, das Problem ist, dass ich beim bereits genannten Programm einzig und alleine das Zeichen "}" nicht eingeben kann. Ich habe (meines Wissens nach) nichts spezielles eingegeben und Google spuckt auch nichts aus, die Taste kann ich auch betätigen und es geht halt nur bei Visual Studio nicht einzugeben, dementsprechend liegt es auch nicht an der Tastatur Sprache o.ä. und das Gegenteil ({) kann ich aber dort eingeben. Es kommt auch kein Ton oder ähnliches, wenn ich die Tast(-en) drücke. Hat jmnd. 'ne Ahnung wie ich das Fixe? ist nämlich etwas nervig so gut wie alles mit copy-paste eingeben zu müssen, mit dem es aber möglich ist "einzugeben"...

...zur Frage

Android APP stürzt ab wenn ich etwas in einer Datei lese und dann speichere?

Hallo, ich habe eine meiner ersten Apps mit Java programmiert. Das Problem ist, dass die App abstürzt, wenn ich erst lese was in einer Datei steht und anschliessend die Datei überschreibe.

Code: if(gewonnenodernicht){

                int ausgabe;
                StringBuffer dateiInhalt = new StringBuffer("");
                try {
                    FileInputStream in = openFileInput("score.txt");

                    while( (ausgabe = in.read()) != -1)
                        dateiInhalt.append((char)ausgabe);

                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                dateiaddieren = Integer.parseInt(dateiInhalt.toString());
                dateiueberschreiben = dateiaddieren + gesAugenzahl;

                String dateiname = "score.txt";
                String score = Integer.toString(dateiueberschreiben);
                FileOutputStream outputStream;


                try {
                    outputStream = openFileOutput(dateiname, Context.MODE_PRIVATE);
                    outputStream.write(score.getBytes());
                    outputStream.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
            Intent Home = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(Home);
        }

Kann mir jemand sagen was der Grund ist und wie ich den Fehler beheben kann? Es funktioniert eigentlich wenn ich es mit AndroidSTudio auf dem Handy laufen lasse. Aber nachdem ich eine .apk erstellt habe nicht mehr.

...zur Frage

Wieso funktioniert dieses Minecraft Plugin nicht?

Hi Leute,

ich habe hier ein Minecraft Plugin, dass Spielernamen aus einer Datenbank auslesen soll (mit dem Command /player wird alles gestartet). Wenn ich aber /player eingebe, kommt sowas wie com.mysql.jdbc.JBDC4ResultSet@23bd1b13.

What did I do wrong???

LG, hier ist der Code:

@Override
public void onEnable() {  
    getCommand("player").setExecutor(this);
    System.out.println("Plugin aktiviert");
}


@Override
public void onDisable() {
    System.out.println("Plugin deaktiviert");
}

@Override
public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {

    connect();
    createTable();
    ResultSet rs = getResult("SELECT player FROM player WHERE server = 'defense' and active = 'true'");
    System.out.println("[DefenseLogin] Player: " + rs);
    
    return false;
}

  public static String username = "***";
  public static String password = "***";
  public static String database ="***";
  public static String host = "***";
  public static String port = "3306";
  public static Connection con;
  
  public static void connect()
  {
    if (!isConnected()) {
      try
      {
        con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password);
        Bukkit.getConsoleSender().sendMessage("MySQL Verbindung aufgebaut");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static void close()
  {
    if (isConnected()) {
      try
      {
        con.close();
        Bukkit.getConsoleSender().sendMessage("MySQL Verbindung geschlossen");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static boolean isConnected()
  {
    return con != null;
  }
  
  public static void createTable()
  {
    if (isConnected()) {
      try
      {
        con.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS player (ID INTEGER NOT NULL, player VARCHAR(20), server VARCHAR(20), active VARCHAR(10), PRIMARY KEY(ID))");
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  
  public static void update(String qry)
  {
    if (isConnected()) {
      try
      {
        con.createStatement().executeUpdate(qry);
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
  }
  public static ResultSet getResult(String qry)
  {
    if (isConnected()) {
      try
      {
        return con.createStatement().executeQuery(qry);
      }
      catch (SQLException e)
      {
        e.printStackTrace();
      }
    }
    return null;
  }

}
...zur Frage

Was möchtest Du wissen?