无法在Android上打开Java Server套接字

时间:2018-08-06 10:16:18

标签: java android server serversocket

我正在尝试编写一个简单的Android聊天程序。为了进行测试,我希望服务器和客户端在同一设备上运行。我目前停留在设置服务器部分的第一步,但我根本不知道自己在做什么错。 (服务器将稍后在自己的线程中运行)

public class MainActivity extends AppCompatActivity {

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

    int port = 4444;

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

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

我尝试了许多不同的端口,但仍然出现IO错误。我还尝试使用以下代码简单地使用new 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,这意味着serverocket仍然没有绑定任何东西。

1 个答案:

答案 0 :(得分:0)

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