0

ローカルのstorgaeからビデオファイルをチャンクで読み取ってサーバーにアップロードしようとしています。私はこのコードを別のJavaプラットフォームで動作させているので、非常に簡単だと思いました。

を使用してファイルを開こうとすると

 File f = new File(filePath);
 fileIn = new FileInputStream(f);

それが開き、ファイルから必要なものを読み取ることができます。

    SocketFactory socketFactory = SSLSocketFactory.getDefault();
    Socket socket = socketFactory.createSocket(url, 443);

    _in = new InputStreamReader(socket.getInputStream());
    _out = (OutputStream)socket.getOutputStream();

ソケットは正常に接続されますが、このコードのビットの後でFileInputStreamを読み取るようになると、ストリームが閉じられた例外が発生します。

何か案は?何かが失敗していることを示すログに何も表示されませんが、サーバーに接続した後、fileinputstreamから読み取ることができませんか?

他に何か知っておく必要がある場合はお知らせください。

4

2 に答える 2

1

この例は私のために働いた:

public class MainClass {
  public static void main(String[] args) {
    String host = args[0];
    int port = Integer.parseInt(args[1]);

    try {
      System.out.println("Locating socket factory for SSL...");
      SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();

      System.out.println("Creating secure socket to " + host + ":" + port);
      SSLSocket socket = (SSLSocket) factory.createSocket(host, port);

      System.out.println("Enabling all available cipher suites...");
      String[] suites = socket.getSupportedCipherSuites();
      socket.setEnabledCipherSuites(suites);

      System.out.println("Registering a handshake listener...");
      socket.addHandshakeCompletedListener(new MyHandshakeListener());

      System.out.println("Starting handshaking...");
      socket.startHandshake();

      System.out.println("Just connected to " + socket.getRemoteSocketAddress());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

class MyHandshakeListener implements HandshakeCompletedListener {
  public void handshakeCompleted(HandshakeCompletedEvent e) {
    System.out.println("Handshake succesful!");
    System.out.println("Using cipher suite: " + e.getCipherSuite());
  }
}



スニコラスが言ったように、socket.startHandshake()問題を解決できます。

于 2012-05-07T13:27:26.087 に答える
-1

socket.startHandshake(); を呼び出さなかった

于 2012-05-07T13:20:40.233 に答える