Can';t在Android上打开Java服务器套接字

Can';t在Android上打开Java服务器套接字,java,android,server,serversocket,Java,Android,Server,Serversocket,我正在尝试编写一个简单的Android聊天程序。为了进行测试,我想让服务器和客户端在同一台设备上运行。我目前正忙于安装服务器部件的第一步,我根本不知道我做错了什么。(服务器将延迟在自己的线程中运行) 我尝试了很多不同的端口,但仍然出现IO错误。我还尝试使用以下代码简单地使用新的ServerSocket(0)分配一个空闲端口: public class MainActivity extends AppCompatActivity { @Override protected void onCrea

我正在尝试编写一个简单的Android聊天程序。为了进行测试,我想让服务器和客户端在同一台设备上运行。我目前正忙于安装服务器部件的第一步,我根本不知道我做错了什么。(服务器将延迟在自己的线程中运行)

我尝试了很多不同的端口,但仍然出现IO错误。我还尝试使用以下代码简单地使用新的ServerSocket(0)分配一个空闲端口:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ServerSocket serverSocket = null;

    try {
        serverSocket = new ServerSocket(0);
        Log.i("Info", "Server socket initiated on port" + serverSocket.getLocalPort());

    } catch (IOException e) {
        Log.e("Error", "Could not listen on port " + serverSocket.getLocalPort());
    }
  }
}

但这只是返回一个端口号-1,这意味着serversocket仍然没有绑定到任何东西。

答案是在清单中添加权限。谢谢

您可能需要声明您的应用程序需要网络访问。我在清单中添加了权限,但仍然得到-1
get the IO Error
哪一个?stacktrace在哪里?很抱歉,我不知道为什么,但现在添加权限解决了问题。突然它开始工作了。Thx npinit!
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ServerSocket serverSocket = null;

    try {
        serverSocket = new ServerSocket(0);
        Log.i("Info", "Server socket initiated on port" + serverSocket.getLocalPort());

    } catch (IOException e) {
        Log.e("Error", "Could not listen on port " + serverSocket.getLocalPort());
    }
  }
}