Keresés

Új hozzászólás Aktív témák

  • nro

    újonc

    Sziasztok!

    Olyan problémám, hogy egy elosztott rendszert írok és valamiért nem működik a fájlletöltés után a szöveg küldése.
    Az üzenetek küldésére Scannert és PrintWritert használok, míg a fájlküldéshez BufferedInputStream-et és BufferedOutputStreamet.
    Itt a szerver kódja (in a Scanner, out a PrintWriter):
    File file = new File(in.nextLine());
    BufferedOutputStream bos = new BufferedOutputStream(myClientSocket.getOutputStream());
    FileInputStream fis = new FileInputStream(file);
    BufferedInputStream bis = new BufferedInputStream(fis);
    int n = -1;
    byte[] buffer = new byte[8192];
    while ((n = bis.read(buffer)) > -1) {
    bos.write(buffer, 0, n);
    }
    bis.close();
    bos.flush();
    bos.close();
    out.println("Hello");

    Itt a kliens kódja (out a PrintWriter, in a Scanner):
    out.println(fileName);
    out.flush();
    try {
    BufferedInputStream bis = new BufferedInputStream(requestSocket.getInputStream());
    FileOutputStream fos = new FileOutputStream(fileName);
    int n;
    byte[] buffer = new byte[8192];
    while ((n = bis.read(buffer)) > 0) {
    fos.write(buffer, 0, n);
    }
    fos.flush();
    fos.close();
    System.out.println(in.nextLine());
    } catch (IOException ex) {
    System.err.println(ex);
    }

    Ha nem zárom be a BufferedOutputStreamet, akkor nem "menti le".
    A vágyam az az lenne, ha miután lementem a fájlt ugyanazon a porton keresztül tudjak további üzenetek küldeni PrintWriterrel és Scannerrel.

Új hozzászólás Aktív témák