Я прочитал о SSLSocket, когда я уже закончил программу чата с java, которая использует обычный ServerSocket. Я пытаюсь заменить обычный ServerSocket на SSlSocket, в Интернете мало чего, но я что-то нашел. Теперь мой класс WhServer выглядеть следующим образом: Этот класс является тот, который начать гнездо в выбранном порту, если вам нужно, чтобы увидеть другие классы я буду редактировать вопрос:Java SSL Socket Programming
import java.io.IOException;
import java.net.*;
import javax.net.ServerSocketFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
public class WhServer extends Thread {
private int port;
private ServerSocket server;
private ChannelsManager manager;
SSLContext context;
SSLSocketFactory sslSf;
public WhServer(int port, ChannelsManager manager) throws IOException {
this.port = port;
this.manager = manager;
}
public void ServerStop() throws IOException{
server.close();
}
public WhServer(int port) throws IOException {
this(port, new ChannelsManager());
}
public int getPort() {
return port;
}
public void run() {
try {
while(true) {
ServerSocketFactory ssf = ServerSocketFactory.getDefault();
server = ssf.createServerSocket(port);
Socket socket = server.accept();
sslSf = context.getSocketFactory();
SSLSocket sslSocket = (SSLSocket) sslSf.createSocket(socket, null,socket.getPort(), false);
sslSocket.setUseClientMode(false);
manager.initialite(socket);
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
Похоже, что вы не инициализировали свой SSLContext, он может быть только нулевым (если не инициализирован вне этого класса) – NickJ
Нет, это не так. Моя ошибка, но как я могу ее инициализировать? Какие параметры мне нужны? Я новичок с сокетами, поэтому, если вы можете показать мне пример небольшого кода, это было бы прекрасно. (SSLContextSpi, Provider, String), что означает каждый из этих параметров? –
Я боюсь, что это не та область, с которой я сталкиваюсь, но быстрый взгляд на документы API показывает некоторые статические методы getInstance(): http://docs.oracle.com/javase/7/docs/api/ javax/net/ssl/SSLContext.html – NickJ