2

私は現在、Android を使用して、今学期の小さな個人プロジェクトに取り組んでいます。私がやろうとしているのは、Android フォンで https サーバーに多くの接続を確立して、サーバーがダウンするようにすることです。私はコンピューター言語ではなくネットワークを勉強しているので、プログラミングについてはまったく知りません。でも、なんとなくあちこちから集めて、以下のようなコードを作りました。ソケット接続を使用していると思います。

import java.net.*;
import java.io.*;
import java.security.*;
import javax.net.ssl.*;

public class HTTPSClient {
    public static void main(String[] args) {
        System.out.println("Usage: java HTTPSClient host");

        int port = 443; // default https port
        String host = "192.168.0.8";

        TrustManager[] trustAll = new javax.net.ssl.TrustManager[]{
          new javax.net.ssl.X509TrustManager(){
              public java.security.cert.X509Certificate[] getAcceptedIssuers(){
                return null;
              }
              public void checkClientTrusted(java.security.cert.X509Certificate[] certs,String authType){}
              public void checkServerTrusted(java.security.cert.X509Certificate[] certs,String authType){}
          }
        };

        try {
            javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
            sc.init(null, trustAll, new java.security.SecureRandom());

            Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
            SSLSocketFactory factory = (SSLSocketFactory) sc.getSocketFactory();
            SSLSocket socket = (SSLSocket) factory.createSocket(host, port);

            Writer out = new OutputStreamWriter(socket.getOutputStream());
            out.write("GET / HTTP/1.0\\r\\n");
            out.write("\\r\\n");
            out.flush();

            // read response
            BufferedReader in = new BufferedReader(
            new InputStreamReader(socket.getInputStream()));
            int c;
            while ((c = in.read()) != -1) {
                System.out.write(c);
            }
            // out.close();
            // in.close(); 
            // socket.close();

        } catch (Exception e) {
            System.err.println(e);
        }
    }
}

Macbook で https を有効にすると、ポート 443 がリッスンしていることがわかります。上記のコードを実行すると、'netstat -an | grep 443' 停止するまで。私の質問は次のとおりです。このコードで複数の接続を作成したい場合、何を追加すればよいですか? このコードで可能ですか?私の考えでは、Macbook の 443 ポートへの確立された接続のヒープが表示された場合、マシンがダウンしているため、ブラウザで https:://localhost に接続できません。それが正しいかどうかはわかりませんが、願っています。学期がもうすぐ終わり、とにかく何か報告をしなければならないからです。

Androidフォン用のコードを作成するときにそのコードが同じになるかどうかはわかりませんが、最初に何かが起こるのを見たいだけです. 本当に困っています、助けてください。どうもありがとうございました。

4

2 に答える 2