Kommuniaktion mit Javasocket



  • Hallo zusammen,

    ich kommuniziere mit einem Java-TCP socket.
    meine c anwendung schickt über tcp eine anfrage an den Server(java-service).

    der java-service wartet auf meine anfrage mittels:

    byte buffer[] = new byte[1024];
    int length = tcpSocket.getInputStream().read(buffer, 0, buffer.length );
    

    Das Problem ist das der read per definition nur unter folgenden Umständen beendet:
    .... until input data is available, end of file is detected, or an exception is thrown.

    Die Frage ist nun wie ich aus meiner c-application ein "end of file" hervorrufe so das der read im java-service beendet wird.
    ich habs bereits mittels shutdown(socket,1) erreicht, was jedoch nicht dienlich ist da ich danach noch daten senden muss und dies durch den shutdown(socket,1) verhindert wird (nach shutdown(socket,1) können keine daten mehr gesendet werden.



  • abs0lut_beginner schrieb:

    .... until input data is available [...]

    Das heist du musst mit send irgendetwas senden, sonst wartet die Funktion für immer. Sobal etwas empfangen wird, erwacht dein Programm wieder zum Leben.

    Am besten du beschäftigst dich ein wenig mit Grundlagen der Socket Programmierung: http://www.zotteljedi.de/doc/socket-tipps/index.html



  • abs0lut_beginner schrieb:

    Das Problem ist das der read per definition nur unter folgenden Umständen beendet:
    .... until input data is available, end of file is detected, or an exception is thrown.

    Unter welchen Umständen willst du denn, dass die Methode beendet wird?

    Die Frage ist nun wie ich aus meiner c-application ein "end of file" hervorrufe so das der read im java-service beendet wird.
    ich habs bereits mittels shutdown(socket,1) erreicht, was jedoch nicht dienlich ist da ich danach noch daten senden muss und dies durch den shutdown(socket,1) verhindert wird (nach shutdown(socket,1) können keine daten mehr gesendet werden.

    Wenn du danach noch senden könntest wär es ja wohl kaum "end of file" oder?


Anmelden zum Antworten