首先,我知道,有些人遇到同样的问题,但他们的修复程序对我不起作用。
所以我得到的例外是:
java.net.BindException:bind failed:EACCES(Permission denied)on the line“serverSocket = new ServerSocket(port);”我无法弄清楚问题出在哪里。我试过了:
<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系统),所以无论如何,感谢你停止了这个帖子,我很抱歉浪费你们任何人的时间
答案 0 :(得分:0)
我认为您并不需要检查是否授予INTERNET权限。如果您在MANIFEST中定义它,它总是被授予。也许您在测试中遇到错误:只需尝试卸载并再次安装您的应用程序。我最近编写了一段运行TCP服务器的代码而没有遇到这个问题。