laubi Geschrieben 25. November 2011 Geschrieben 25. November 2011 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 Zitieren
flashpixx Geschrieben 25. November 2011 Geschrieben 25. November 2011 ein Socket hängt nicht irgendwelche Daten an, der überträgt genau das was Du im übergibst: PHP: socket_write - Manual PHP: socket_send - Manual bzw Socket (Java 2 Platform SE v1.4.2) Du solltest Dir einmal überlegen was ein "println" macht und wofür das "ln" in dem Methodennamen steht. Eine Serialisation ist nicht zwingend erforderlich, kann aber manches einfacher machen. Ansonsten musst Du eben ein Protokoll benutzen, das eben beschreibt, wie die Datenstruktur sein soll und es dann sowohl im Client wie auch im Server implementieren Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.