Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ServerSocket在转换为SSLSocket时不接受(空指针异常)_Java_Sockets_Ssl_Networking - Fatal编程技术网

Java ServerSocket在转换为SSLSocket时不接受(空指针异常)

Java ServerSocket在转换为SSLSocket时不接受(空指针异常),java,sockets,ssl,networking,Java,Sockets,Ssl,Networking,我一直在尝试将我在Java中使用套接字制作的客户机/服务器模型转换为SSL。生成包含服务器根文件和中间文件的PKCS12文件后,我使用System.setProperty将客户机和服务器文件中的信任和密钥库更改为PKCS文件。我不确定你是不是想这么做。我还对套接字进行了更改,使用SSLSocketFactory创建了必要的套接字 下面是代码。 客户: 服务器: public Server(int port) { System.setProperty("ja

我一直在尝试将我在Java中使用套接字制作的客户机/服务器模型转换为SSL。生成包含服务器根文件和中间文件的PKCS12文件后,我使用System.setProperty将客户机和服务器文件中的信任和密钥库更改为PKCS文件。我不确定你是不是想这么做。我还对套接字进行了更改,使用SSLSocketFactory创建了必要的套接字

下面是代码。 客户:

服务器:

public Server(int port)
        {
            System.setProperty("javax.net.ssl.keyStore", "wa.p12");
            System.setProperty("javax.net.ssl.keyStorePassword", "namihana");
            System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
            System.setProperty("javax.net.ssl.trustStore", "wa.p12");
            System.setProperty("javax.net.ssl.trustStorePassword", "namihana");
            System.setProperty("javax.net.ssl.TrustStoreType", "PKCS12");
             multichoice_answers = new char[30];
             multichoice_answers[0] = 'A';
             multichoice_answers[1] = 'A';
             multichoice_answers[2] = 'D'; 
             multichoice_answers[3] = 'C';
             multichoice_answers[4] = 'C';
             multichoice_answers[5] = 'C';
             multichoice_answers[6] = 'D';
             multichoice_answers[7] = 'B';
             multichoice_answers[8] = 'D';
             multichoice_answers[9] = 'B';
             multichoice_answers[10] = 'C';
             multichoice_answers[11] = 'D';
             multichoice_answers[12] = 'A';
             multichoice_answers[13] = 'D';
             multichoice_answers[14] = 'C';

            try
        {
            SSLServerSocketFactory ssf =  (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
            SSLServerSocket server_socket =  (SSLServerSocket) ssf.createServerSocket(port); 
            System.out.println("Server_socket made");
            Security.addProvider(new Provider()); 
            //server_socket.setSoTimeout(100000); 
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
     }


    public void receive()
    {
        try
        {
             System.out.println("Server connected2");   
             socket_2 =   server_socket.accept();

您的
try
块中有一个本地
ServerSocket
变量正在跟踪类成员。

您没有真正提出问题,也没有完全解释问题所在,也没有给出完整的示例来说明问题。看起来你有75%的机会回答一个好问题,但后来放弃了。请编辑您的问题以添加缺少的详细信息。
public Server(int port)
        {
            System.setProperty("javax.net.ssl.keyStore", "wa.p12");
            System.setProperty("javax.net.ssl.keyStorePassword", "namihana");
            System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
            System.setProperty("javax.net.ssl.trustStore", "wa.p12");
            System.setProperty("javax.net.ssl.trustStorePassword", "namihana");
            System.setProperty("javax.net.ssl.TrustStoreType", "PKCS12");
             multichoice_answers = new char[30];
             multichoice_answers[0] = 'A';
             multichoice_answers[1] = 'A';
             multichoice_answers[2] = 'D'; 
             multichoice_answers[3] = 'C';
             multichoice_answers[4] = 'C';
             multichoice_answers[5] = 'C';
             multichoice_answers[6] = 'D';
             multichoice_answers[7] = 'B';
             multichoice_answers[8] = 'D';
             multichoice_answers[9] = 'B';
             multichoice_answers[10] = 'C';
             multichoice_answers[11] = 'D';
             multichoice_answers[12] = 'A';
             multichoice_answers[13] = 'D';
             multichoice_answers[14] = 'C';

            try
        {
            SSLServerSocketFactory ssf =  (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
            SSLServerSocket server_socket =  (SSLServerSocket) ssf.createServerSocket(port); 
            System.out.println("Server_socket made");
            Security.addProvider(new Provider()); 
            //server_socket.setSoTimeout(100000); 
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
     }


    public void receive()
    {
        try
        {
             System.out.println("Server connected2");   
             socket_2 =   server_socket.accept();