我在带有Oreo 8.0的三星Galaxy S7上运行此代码并且套接字未打开,当我尝试连接时,我收到“连接被拒绝” . 相同的代码在带有Marshmallow 6.0.1的三星Galaxy S5上运行良好 . Oreo的套接字api有什么变化吗?

Handler handler = new Handler();
ServerThread serverThread = new ServerThread(handler);
Thread thread = new Thread(serverThread);
thread.start();

还有ServerThread类:

public class ServerThread implements Runnable {

private ServerSocket serverSocket;
private Socket client;
private DataInputStream dataInputStream;
private Handler handler;

public ServerThread(Handler handler) {
    this.handler = handler;
}

@Override
public void run() {
    try {
        handler.post(new Runnable() {
            @Override
            public void run() {
                Log.d("app", "listening...");
            }
        });
        serverSocket = new ServerSocket();
        serverSocket.setReuseAddress(true);
        serverSocket.bind(new InetSocketAddress(5000));
        client = serverSocket.accept();
        handler.post(new Runnable() {
            @Override
            public void run() {
                Log.d("app", "connected");
            }
        });
        dataInputStream = new DataInputStream(client.getInputStream());
        boolean done = false;
        while (!done) {
            try {
                byte messageType = dataInputStream.readByte();
                Log.d("app", "read byte " + messageType);
                switch (messageType) {
                    // do something here, at some point I set done = true
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        dataInputStream.close();
        serverSocket.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}