Jak połączyć się na talk.google.com z użyciem protokołu TLS ?
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;
public class Client {
public static void main (String [] args) {
try {
final String init = new String("<?xml version=\"1.0\"?>\n" +
"<stream:stream " +
"to='talk.google.com' " +
"xmlns='jabber:client' " +
"xmlns:stream='http://etherx.jabber.org/streams' " +
"version='1.0'>");
final String starttls = new String("<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
SSLSocketFactory sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslSocket = (SSLSocket) sslSocketFactory.createSocket("talk.google.com", 5222);
InputStream inputStream = System.in;
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
OutputStream outputStream = sslSocket.getOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(init + '\n');
bufferedWriter.flush();
String string = null;
while ((string = bufferedReader.readLine()) != null) {
bufferedWriter.write(string + '\n');
bufferedWriter.flush();
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
}
W momencie wysłania wiadomości ten kod generuje błąd:
Unrecognized SSL message, plaintext connection?