Zum Inhalt springen

laubi

Mitglieder
  • Gesamte Inhalte

    34
  • Benutzer seit

  • Letzter Besuch

  1. Hallo erstmals, ich bin in der "Socket-Welt" ein neuling, und brauche daher eure hilfe. Ich möchte zwischen Java (als Server) und PHP (als Client) Daten austauschen. Der Client soll einen Befehl senden, und der Server darauf die Antwort. Allerdings stellen sich hier schon mal meine Hauptfrage: Wie kann ich am besten Daten zwischen 2 Sockets senden? Der Client Schickt einen Befehl in Form eines Strings zum Server, mit Parametern und allem was gebraucht wird. Der Server wertet diese aus, und schickt die Antwort zurück. Nun ist aber da ein kleines Problemchen: Wenn ich nun eine Variable schicken will, z.b. Integer, so sendet er mir "1234 \n", und sowas kann man nicht mal in PHP einfach casten. Wie kann ich Klassen und Variablen ohne Probleme einfach hin- und her-schicken? Klassen muss man wohl serialisieren, aber davon hab ich bisher keine Ahnung, und genausowenig wie ich sie am besten schicke, bzw wieder zu einer Klasse in PHP mache. Als Beispiel folgender Code: PrintWriter out = new PrintWriter(client.getOutputStream(),true); out.println(false); Was in PHP ankommt ist das: string(7) "false " Das intressante dabei finde ich ist, das es 7 lang ist, aber nur 6 Zeichen angezeigt werden. Ist das 7. das \n, und warum das 6. ein Leerzeichen? Nun, ich hoffe ihr könnt mir helfen, ich würde in diesem Bereich wirklich hilfe benötigen. Danke im Vorraus Laubi
  2. ich benütze datenbanken in verbindung mit php,java und c++, es ist die beste um daten zu speichern die ähnlich aufgebaut werden. Leider hab ich noch keine gute bibliothek für die anderen 2 sprachen geunden, falls du eine kennst ich wäre sehr dankbar
  3. ok danke, habs hinbekommen schade das es nicht einfach einen datenbank standart gibt, dann wäre das ganze viel einfacher^^
  4. Hallo, ich habe wieder mal ein kleines problem: ich habe folgende querys: CREATE TABLE IF NOT EXISTS BlockLog(id int AUTO_INCREMENT NOT NULL,blockbreaker VARCHAR (30) NOT NULL,block int NOT NULL,x INT NOT NULL,y INT NOT NULL,z INT NOT NULL,world VARCHAR(20) NOT NULL,how TINYINT(7),timest TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY(id)); CREATE TABLE IF NOT EXISTS ChatLog(id INT NOT NULL AUTO_INCREMENT,player VARCHAR(30) NOT NULL,message TEXT NOT NULL,command TINYINT(1) not null,timest TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY(id)); Nun führe ich diese in MySql aus und es geht ohne probleme, in Sqlite allerdings funktioniert der 2te query nicht. [sqlITE_ERROR] SQL error or missing database (near "AUTO_INCREMENT": syntax error) nun wüsste ich gerne, warum das nicht geht kann man in eine .db datei nur eine tabelle schreiben?
  5. danke ._., aber das oben ist ja nur ein testcode, der, nachdem die klammer ja fehlt, nicht mal zum compilen gehen würde.
  6. hey leute, ich hoffe ihr könnt mir bei meinem kleinen Problem mit java helfen: ich möchte in einem string alle elemente durch neue ersetzen, die "templates" sind in einer arrayliste gespeichert: public class test{ [INDENT] public class Color{[INDENT] public String name; public String color; public Color(String name,String color{[INDENT] this.name=name; this.color=color;[/INDENT] } [/INDENT]} ArrayList <Colors>colors=new ArrayList<Colors>(); public test(){ [INDENT] this.colors.add(new Color("{red}","RED")); this.colors.add(new Color("{blue}","BLUE")); //... [/INDENT] }private String replaceColors(String msg){ [INDENT]for(int i=0; i<this.colors.size(); i++){[INDENT]while(msg.contains(this.colors.get(i).name){[INDENT]msg=msg.replace(this.colors.get(i).name,this.colors.get(i).color);[/INDENT] }[/INDENT]}return msg;[/INDENT]}[/INDENT]} nun kommt aber jedes mal wenn ich den code ausführe eine NullPointerException. wie kann ich das am besten lösen? und ich habe auch gedacht man kann die innere while schleife durch ein replaceAll ersetzen, allerdings kann ich das ja nicht mal testen weil es wie gesagt nicht funktioniert. ich hoffe ihr könnt mir dabei helfen. lg Laubi
  7. Hallo, ich versuche derzeit einen Labyrinth-Algorithmus zu schreiben, und es funktioniert zum Teil auch, allerdings kommt nach kurzer zeit eine NullPointerExeption. Zur Rrklärung mal der wichtigste Teil des Sourcecodes: private boolean[][] generatenewmaze_Prims_algorithm(Selection s) { boolean[][] maze = new boolean[s.getWidth()][s.getLength()]; ArrayList<Point> neighbours = new ArrayList<Point>(); //wir setzen alle blöcke als wand for (int x = 0; x < maze.length; x++) { for (int y = 0; y < maze[x].length; y++) { maze[x][y] = true; } } //erstes element als weg markieren maze[1][1] = false; //nachbarn in die liste adden this.addaround(1, 1, maze, neighbours); while (!neighbours.isEmpty()) { int curpos = this.rand.nextInt(neighbours.size()); Point cur = neighbours.get(curpos); if (maze[cur.x - 1][cur.y] == true) { maze[cur.x - 1][cur.y] = false; this.addaround(cur.x - 1, cur.y, maze, neighbours); } else if (maze[cur.x + 1][cur.y] == true) { maze[cur.x + 1][cur.y] = false; this.addaround(cur.x + 1, cur.y, maze, neighbours); } else if (maze[cur.x][cur.y - 1] == true) { maze[cur.x][cur.y - 1] = false; this.addaround(cur.x, cur.y - 1, maze, neighbours); } else if (maze[cur.x][cur.y + 1] == true) { maze[cur.x][cur.y + 1] = false; this.addaround(cur.x, cur.y + 1, maze, neighbours); } neighbours.remove(curpos); } return maze; } private void addaround(int x, int y, boolean[][] maze, ArrayList<Point> liste) { if (!this.isoutofrange(x, y + 1, maze)) { liste.add(new Point(x, y + 1)); } if (!this.isoutofrange(x, y - 1, maze)) { liste.add(new Point(x, y - 1)); } if (!this.isoutofrange(x + 1, y, maze)) { liste.add(new Point(x + 1, y)); } if (!this.isoutofrange(x - 1, y, maze)) { liste.add(new Point(x - 1, y)); } } private boolean isoutofrange(int x, int y, boolean[][] maze) { return x == 0 || y == 0 || x == maze.length - 1 || y == maze[x].length; } wird nun allerdings eine 0 mit random generiert, kommt eine NullPointerExeption, und der algorithmus stürzt ab. Nach einigen versuchen habe ich festgestellt, dass der fehler in der methode addaround passiert, allerdings habe ich keine idee, WARUM. die idee zum algorithmus habe ich von Wikipedia (Maze generation algorithm - Wikipedia, the free encyclopedia) Ich hoffe ihr könnt mir helfen den Fehler zu finden, ich habe ehrlich gesagt keine ahnung wo der fehler sein könnte. Danke im Vorraus, Laubi
  8. hallo, also ich wollte mich jetzt eig, mal mit qt beschäfftigen, habe es richtig heruntergeladen und compilet, allerdings funktioniert es immernoch nicht richtig. ich habe jetzt als beispiel folgenen code: #include <QtGui\qapplication.h> int main(int argc,char **argv){ QApplication app(argc,argv); }[/PHP] in den einstellungen ist festgelegt: C/c++: D:\Qt\4.7.3\include;%(AdditionalIncludeDirectories) Linker: qtmaind.lib;QtCored4.lib;QtGuid4.lib;%(AdditionalDependencies) Eingabe: qtmaind.lib;QtCored4.lib;QtGuid4.lib;%(AdditionalDependencies) so sollte es eigentlich funktionieren, aber leider meldet es nach dem kompilieren folgenen fehler: "Das Programm kann nicht gestartet werden, da QTGuid4.dll auf dem Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben." Das Problem ist jetzt, das die dll existiert, und auch in der PATH-Variable wurde der Pfad richtig eingefügt. nun stellt sich die frage, warum es nicht funktioniert, und, was mir lieber wäre, wie ich die bibliotheken statisch einbinden kann. danke für eure antworten. Laubi
  9. hmm, na gut wenn es so gehört gehört es so, danke für die information
  10. Hallo, ich war mal wieder am cpp üben als ich mich gefragt habe wie man eigentlich gut eine eigene bibliothek erstellen kann, die hinter einem Namensraum steht, also wie der std-namespace. nun bin ich zu folgendem code gekommen: LError.h: #include <string> #include <vector> #include <utility> #ifndef LBib_LError #define LBIB_LError true namespace LBib{ class LError; }; class LBib::LError{ protected: int error; ::std::string description; ::std::vector<::std::pair<::std::string,::std::string>> extra_information; public: LError(void); LError(int error); LError(int error, ::std::string errordescription); LError(int error, ::std::string errordescription, ::std::pair<::std::string,::std::string> extra_information); LError(int error, ::std::string errordescription, ::std::vector<::std::pair<::std::string,::std::string>> extra_information_vector); //etc... LError.cpp: #include <string> #include <vector> #include <utility> #include "LError.h" using namespace LBib; LBib::LError::LError(void){ this->error=false; } LBib::LError::LError(int error){ this->error=error; } //etc }; Das Programm klappt in der Form ohne probleme, allerdings will ich in der LError.h die includes raus bekommen, und das sollte eigentlich auch kein problem sein da ich sie ja schon in der LError.cpp einbinde, allerdings ist dies in der Paxis nicht so: 1>c:\users\laubi\documents\visual studio 2010\projects\schule\lbib\v1\lerror\lerror.h(14): error C2039: 'string': Ist kein Element von 'std' Also meine Fragen: Wie bekomme ich die includes raus ohne die errormeldung? das ist sicherlich nur ein kleiner fehler, aber ich komm einfach net drauf :/ Ist das mit dem Namespace richtig so, oder macht man es in der Praxis anderst? danke im vorraus, Laubi
  11. Danke, geht jetzt ohne probleme
  12. hallo, ich üb mal wieder mit klassen und habe eine neue frage, und da ich hier immer nützliche antworten bekomme frag ich gleich hier also ich habe z.B. folgende klasse: klassenname.h: class Klassenname{ private: #if defined(WINDOWS) static bool windowssetted; #endif //andere eigenschaften public: #if defnied(WINDOWS) static bool iswindowssetted(); #endif //andere methoden und konstruktoren }; Klassenname.cpp: #if defined(WIN32) || defined(_WIN32) #define WINDOWS 1 #endif #include "Klassenname.h" #if defined(WINDOWS) bool Klassenname::iswindowssetted(){ if(!windowssetted){ return windowssetted=::machewas();//wenns gut gegangen ist wird die eigenschaft af true gesetzt return true; } #endif also hier die probleme: static bool windowssetted sollte am anfang auf false stehen, damit machewas() nur einmal aufgerufen wird und nicht öfters, daher ist sie auch static. aber bei mir kommt immer der fehler: 1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static bool MySock::iswinsetted" (?iswinsetted@MySock@@0_NA)". wie kann ich das so machen das die klasse ihre arbeit richtig macht? und da die eigenschaft nur bei windows sein sollte habe ich das mit den präprozessor so gemacht, aber geht es vielleicht besser? danke im vorraus, Laubi
  13. Hallo also ich steck mal wieder bei einer frage fest. Wie kann ich einfach (oder auch nicht) dateien vom internet herunterladen? ich hab mir gedacht das würde über sockets gehen, aber ich bin mir nicht sicher, daher bitte ich euch um eine hilfestellung. welche methode wär z.b. am besten um eine datei herunterzuladen? und dabei geht es nicht um eine bestimmte datei, sondern um bilder, musik und einfach alles was herunterladbar ist. falls ihr einen beispielcode habt wär ich auch sehr dankbar danke im vorraus Laubi
  14. Das tut es 100% danke für eure Links, ich werd mal die referenzen durchgehen und mir dann eins aussuchen das am besten passt super forum, super mitglieder
  15. hallo, ich hätte mal wieder eine frage ich habe ein programm geschrieben das daten abspeichert und natürlich wieder einliest. am besten wäre in dem fall programm eine xml datei geeignet, und daher die frage, ob es eine gute bibliothek gibt die javascript sehr ähnlich ist, damit ich leicht auf daten zugreifen kann, schreiben und lesen. ich habe schon gegoogelt, aber die ergebnisse waren zwar js ähnlich, aber immernoch sehr weit entfernt vom DOM, und das würde ich sehr bevorzugen. hoffe ihr könnt mir helfen. lg Laubi

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...