0
我想創建一個服務器套接字使用sslContext.getServerSocketFactory()。createServerSocket(port);createServerSocket返回java.net.SocketException:套接字失敗:EACCES(權限被拒絕)
但是它的例外權限被拒絕。以下是我的完整代碼。
private SSLServerSocket getSslServerSocket(int port)
throws GeneralSecurityException {
KeyManager[] keyManager = this.mKeyStoreManager.getKeyManagers();
TrustManager[] trustManager = this.mKeyStoreManager.getTrustManagers();
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManager, trustManager, (SecureRandom) null);
SSLServerSocket sslServerSocket = null;
try {
sslServerSocket = (SSLServerSocket) sslContext
.getServerSocketFactory().createServerSocket(port);
sslServerSocket.setNeedClientAuth(true);
sslServerSocket.setUseClientMode(false);
} catch (Exception ex) {
Log.e("----Exception", ex.getMessage());
}
return sslServerSocket;
}
我已經嘗試了多個端口,但我得到了所有相同的錯誤。
以下是異常消息。 java.net.SocketException異常:socket失敗:EACCES(拒絕)
要麼根據@ JiangYD的答案使用系統端口(<= 1023),該端口不應該被刪除,或者您根本沒有足夠的訪問權限來執行套接字操作。我相信有一個Android配置文件必須提供或與應用程序打包才能獲得這些權限。 – EJP
我不認爲在Android和端口號的套接字編程有任何特定的權限,我到目前爲止嘗試過9090,1060,9252。 –