java.net.BindException:绑定失败:EACCES(权限被拒绝)TCP 服务器

java.net.BindException: bind failed: EACCES (Permission denied) TCP Server

首先,我知道有人遇到了同样的问题,但他们的修复对我不起作用。

所以我得到的例外是:

java.net.BindException: bind failed: EACCES (Permission denied) on line "serverSocket = new ServerSocket(port);" and i cant figure out where the problem is. I tryed:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

正在检查权限:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
它返回了授予的权限

我尝试的最后一件事是使用不同的端口,包括低于和高于 1024 的端口。

请帮忙

编辑: 我刚刚遇到了 Facepalm 时刻,我创建了一个对话框,在其中输入端口但我忘记传递该值所以一直试图通过端口 1000 连接(这在 linux 和 unix 系统中是不可用的),所以无论如何,感谢您在这个线程上停下来,我很抱歉浪费你们任何人的时间

我认为您真的不需要检查是否授予了 INTERNET 权限。如果您在 MANIFEST 中定义它,它总是被授予。也许您在测试中遇到错误:只需尝试卸载并重新安装您的应用程序。我最近写了一段运行 TCP 服务器的代码,没有遇到那个问题。