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。 –