Android

SSL 소켓 연결

Machine_웅 2025. 11. 7. 09:40
728x90
반응형

public void mkSocket(String serverUrl, int portNumber) throws  Exception{
    Log("mkSocket : "+serverUrl+" / "+portNumber);
    sslContext = SSLContext.getInstance("TLSv1.2");
    Log("SSLContext.getInstance(TLSv1.2)");
    sslContext.init(null, new javax.net.ssl.TrustManager[]{new TrustManager()}, null);
    Log("init");
    sslSocketFactory = sslContext.getSocketFactory();
    Log("getSocketFactory()");
    sslSocket =  (SSLSocket) sslSocketFactory.createSocket(serverUrl, portNumber);
    Log("createSocket");
    Log("sslSocket : "+sslSocket.isConnected());

    sslSocket.addHandshakeCompletedListener(handshakeCompletedListener);
    sslSocket.setEnableSessionCreation(true);
    sslSocket.setUseClientMode(true);
    sslSocket.startHandshake();
}

public void mkStream(Socket connectedSocket){
    try {
        if(connectedSocket == null){
            Log("mkStream  Socket is null");
            return;
        }

        client_outputStream = new DataOutputStream(connectedSocket.getOutputStream());
        client_inputStream = new DataInputStream(connectedSocket.getInputStream());
        Log("mkStream  Success");
    }catch (IOException ioException){
        Log("mkStream ioException"+ioException.getLocalizedMessage());
    }
}

HandshakeCompletedListener handshakeCompletedListener = new HandshakeCompletedListener() {
    @Override
    public void handshakeCompleted(HandshakeCompletedEvent event) {
        Log("GS_Socket : handshakeCompleted");
        if (sslSocket.isConnected()) {
            Log("GS_Socket : SSL_socket connect success");
            mkStream(sslSocket);
        }else{
            Log("GS_Socket : connect fail - handshake fail");
        }
    }
};
728x90
반응형

'Android' 카테고리의 다른 글

Android View환경에 따른 XML 생성  (0) 2025.04.21
Android Context 비교  (0) 2025.04.04
BLE ) isConnectable  (0) 2025.03.13
ExpandableListView 사용법 (작성중 )  (0) 2025.02.19
외부 경로에 디렉토리 생성 (펌)  (0) 2024.12.12