gpt4 book ai didi

Java SSLSocket错误: cannot be referenced from non-static context

转载 作者:行者123 更新时间:2023-12-02 07:01:15 24 4
gpt4 key购买 nike

我正在努力找出这里出了什么问题(类(class)的一部分):

public class Network implements Runnable {    
private static Network cachedInstance;

private static boolean connected;

//private Socket clientSocket;
private SSLSocket clientSocket;
private PrintWriter out;
private BufferedReader in;

private Map<String, SyncObject> waitForServer;

private Network(final String hostname, final int port) {
try {
Socket baseSocket = new Socket();
baseSocket.connect(new InetSocketAddress(hostname, port), Config.TIMEOUT);
clientSocket = (SSLSocket)SSLSocketFactory.createSocket(baseSocket, hostname, port, true);
clientSocket.startHandshake();
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
connected = true;
} catch (IOException ex) {
connected = false;
}

waitForServer = new HashMap<>();
}

我收到错误:

C:\Users\Frank\Dropbox\NetbeansProjects\TradingCardGame\src\network\Network.java:47: error: non-static method createSocket(Socket,String,int,boolean) cannot be referenced from a static context
clientSocket = (SSLSocket)SSLSocketFactory.createSocket(baseSocket, hostname, port, true);

我怎么会处于静态环境中?

问候。

最佳答案

SSLSocketFactory.createSocketan instance method 。这意味着在能够调用 createSocket 方法之前,应该先创建 SSLSocketFactory 类的实例。

你可以试试这个

SocketFactory sslSocketFactory = SSLSocketFactory.getDefault();
clientSocket = (SSLSocket) sslSocketFactory.createSocket(baseSocket, hostname, port, true);

关于Java SSLSocket错误: cannot be referenced from non-static context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16639027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com