[英]Android java.net.SocketException: socket failed: EACCES (Permission denied)
[英]W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied) in android
绑定将数据从我的应用程序推送到本地服务器。
public class MainActivity extends AppCompatActivity {
Socket socket;
private static final String SERVER_IP = "127.0.0.1";//server ip
private static final int SERVERPORT = 8000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new ClientThread()).start();
}
private class ClientThread implements Runnable {
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr, SERVERPORT);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
在清单文件中,我已注册以下权限
<uses-permission android:name="android.promission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
出现以下错误:
W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
I/zygote: NativeAllocBackground concurrent copying GC freed 2066(637KB) AllocSpace
objects, 0(0B) LOS objects, 73% free, 547KB/2MB, paused 13.469ms total 130.017ms
W/System.err: at java.net.Socket.createImpl(Socket.java:487)
W/System.err: at java.net.Socket.<init>(Socket.java:441)
W/System.err: at java.net.Socket.<init>(Socket.java:248)
W/System.err: at com.abc.MainActivity$ClientThread.run(MainActivity.java:85)
你能帮我解决这个问题吗?
清单中有一个拼写错误:PROmission 而不是 PERmission!
<uses-permission android:name="android.promission.INTERNET"/>
应该说
<uses-permission android:name="android.permission.INTERNET"/>
您的应用程序正在模拟器上运行。 如果您的应用程序使用本地主机地址 127.0.0.1,它会尝试连接到也在该模拟器上运行的服务器。
如果您的服务器在同一台 PC 上运行,则您的应用程序上运行的模拟器应使用 ip 地址 10.0.2.2 代替。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.