Announcement

Collapse
No announcement yet.

Kann mir jmd das bitte mal in Delphi Code übersetzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kann mir jmd das bitte mal in Delphi Code übersetzen

    import java.io.*;<BR>
    import java.lang.Thread;<BR>
    import java.net.Socket;<BR>
    <BR>
    public class SimpleClient {<BR>
    public SimpleClient() {<BR>
    }<BR>
    <BR>
    public static void main(String args[]) {<BR>
    try {<BR>
    <BR>
    Socket conn = new Socket("localhost", 4242);<BR>
    <BR>
    for (int i =0;i<20;i++)<BR>
    Thread.currentThread().sleep(100);<BR>
    <BR>
    System.out.println("=[run]");<BR>
    <BR>
    for (int k=0;k<10;k++) {<BR>
    <BR>
    PrintWriter pw = new PrintWriter(new BufferedWriter(<BR>
    new OutputStreamWriter(conn.getOutputStream())),true); <BR>
    <BR>
    BufferedReader in = new BufferedReader(<BR>
    new InputStreamReader(conn.getInputStream()));<BR>
    <BR>
    pw.print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");<BR>
    pw.print("<request type=\"ExternalData\">");<BR>
    pw.print("<DATA_TYPE>I</DATA_TYPE><DATA_SIZE>4</DATA_SIZE>");<BR>
    pw.println("<DATA_VAL>31.2</DATA_VAL>");<BR>
    pw.println("</request>");<BR>
    pw.write(0x1a);<BR>
    pw.flush();<BR>
    <BR>
    <BR>
    for (int i =0;i<50;i++)<BR>
    Thread.currentThread().sleep(100);<BR>
    System.out.println("=[close]");<BR>
    }<BR>
    <BR>
    } catch (Exception e) {<BR>
    e.printStackTrace();<BR>
    }<BR>
    }<BR>
    }<BR>
    <BR>

  • #2
    Aufmachen einer TClientSocket Verbindung auf Port 4242 zum localhost, nach dem zustandekommen einer Verbindung, dafür wird wohl gewartet, dann raus pusten des angegeben XML.

    Der Rest ist Java-Folklore.

    Wo ist das eigentliche Probleme

    Comment


    • #3
      Soweit konnte ich das auch schon lesen und nach Delphi tranportieren. Die Verbindung zum Server wird auch aufgebaut. Aber die Daten werden nicht übertragen. Also denke ich, ich habe es falsch von Java nach Delphi portiert. Deswegen suchte ich jemanden, der mit mehr Java-Kenntnissen als ich mir das mal übersetzen kann

      Comment


      • #4
        Ich würde es dann alsDelphi Problem behandeln. Wie versuchts Du denn das XML zu senden. Das ist einfacher,da das Problem zu finden

        Comment


        • #5
          Habe den Code jetzt nicht mehr zur Hand. War als Testprojekt verwendet worden und ich habe ihn wieder gelöscht, da es nicht funktionierte. Werde ihn dann noch einmal programmieren. Ist ja nicht so viel.

          Wie würdest Du es denn nun programmieren? Hast Du mehr Ahnung von Java

          Comment


          • #6
            Das Problemw was Du hast, ist kein Java Problem. Du mußt den Text, der da oben ja quasi im Klartext steht nur richtig durch den WinSocket jagen

            Comment


            • #7
              Mit solchen Sprüchen komme ich leider nicht weiter, da darin ja gerade mein Problem liegt. Es funktioniert bei mir nicht, weil ich bei der Umsetzung nach Delphi sicher irgendwo einen Fehler habe

              Comment


              • #8
                Sorry, aber ich werde Dir sicherlich hier nicht ein Delphi Projekt posten was das kann.

                Schreibe was Du in Delphi machst und ich sage Dir wo das Problem ist. Bis dahin klinke ich mich aus

                Comment


                • #9
                  Mir geht es nicht um ein Delphi Projekt, sondern nur um die folgenden paar Zeilen:

                  PrintWriter pw = new PrintWriter(new BufferedWriter(
                  new OutputStreamWriter(conn.getOutputStream())),true);

                  pw.print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                  pw.print("<request type=\"ExternalData\">");
                  pw.print("<DATA_TYPE>I</DATA_TYPE><DATA_SIZE>4</DATA_SIZE>");
                  pw.println("<DATA_VAL>31.2</DATA_VAL>");
                  pw.println("</request>");
                  pw.write(0x1a);
                  pw.flush();

                  Nur dort kann der Fehler liegen, weil die Verbindung zum Server funktioniert. Das Java-Programm funktioniert auch (getestet mit JBuilder 2.0). Teile daraus sind sogar unnötig.

                  Aber wenn ich die Daten mit dem Delphi Programm sende, kommen sie halt nicht an.

                  So

                  WSS := TWinSocketStream.Create(ClientSocket.Socket, 60000);
                  try
                  try
                  WSS.Write(szXML, Length(szXML)+1);
                  except
                  on E:Exception do
                  ShowMessage(E.Message);
                  end;
                  finally
                  WSS.Free;
                  end;

                  oder so nicht

                  ClientSocket.Socket.SendText(szXML)

                  Comment


                  • #10
                    ClientSocket.Socket.SendText(szXML);

                    Würde ich machen, alldings stellt sich die Frage wann Du es derzeit sendest.

                    Das Print was Du da siehst printed genau daß was da steht, also mit abschließendem 0x1a und einem flush, der die gepufferte Ausgabe sofort raushaut. Das Problem ist sicherlich der der richtige Zeitpunkt des Sendens.

                    Das Chat Beispiel aus Delphi zeigt auch wie es geht

                    Comment


                    • #11
                      Das Chat Beispiel habe ich schon als Vorlage verwendet. Bevor ich hier was poste, habe ich mich meist schon ein paar Tage mit dem Problem rumgeschlagen.

                      Aber heute morgen habe ich es geschafft. Es liegt nicht an Delphi, sondern der gesendete Text ist es gewesen. Der muß angepaßt werden

                      Comment


                      • #12
                        Hi

                        etwas verspätet weil das Abo Schwierigkeiten machte meine Gratulation. Ich wollte nicht sagen daß Du nicht recherchiert hast, sondern nur versuchen das Problem zu finden. Das dann ja wohl anders lag als wir beide vermutet hatten. Denn das Programm war ja anscheinend bereits richtig

                        Comment


                        • #13
                          --==|| Wichtig ||==-- Hi @ all!!!!

                          Ich bräucht dringend ein Programm, das mit Delphi geschrieben ist! Vielleicht ist hier ja ein Delphi-Freak oda so, das Proggy is ja auch nicht schwer, nur ich kenn mich da ned so aus.

                          Also, das Programm soll so aufgebaut sein:
                          Ungefähr in der Mitte eines Fensters ist eine Gerade die 10 cm lang sein soll. Das linke Ende dieser Gerade soll P heißen (was auch daneben stehen sollte), das rechte Q. Auf der Gerade soll noch ein Punkt mit dem Namen T liegen, dessen Position sich mit einem Schieberegler ca. 1 cm unter der Gerade verändern lässt.
                          So, das wär dann schon mal das "Schwerste".
                          Jetzt soll noch ca. 2 cm drunter stehen: "t = PT : TQ ="
                          Und dann die Variable, die sich halt aus der länge (PT : TQ)/10 ergibt, so etwa auf 4 Stellen nach Komma. (durch 10 deswegen, weil die Gerade eigentlich 1 cm lang sein sollte, aber das ist ja viel zu winzig!)

                          Es wär echt nett, wenn mir einer, der das ließt, so ein Programm mit Delphi schreiben könnte und mir dann nicht die EXE sondern das Projekt an meine E-Mail-Adresse schicken könnte!!! ([email protected])

                          Vielen Dank,
                          ThA ReAl alphacentaur

                          Comment


                          • #14
                            @Jonas

                            a) Warum schreibst Du deine Frage an einen abgehandelten Thread

                            b) Warum sollen andere Deine Hausaufgaben machen, oder seh ich da was falsch

                            c) Frag wie es geht und mach es dann selbst

                            Comment

                            Working...
                            X