猿问

无法在 Android 上打开 Java Server Socket

我正在尝试编写一个简单的 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 的端口号,这意味着 serversocket 仍然没有绑定到任何东西。

HUH函数
浏览 188回答 1
1回答

暮色呼如

答案是在清单中添加权限。谢谢!
随时随地看视频慕课网APP

相关分类

Java
我要回答