android socket 发送 sendUrgentData 后客户端接收不到数据

我在pc上用java写的 socket服务端,在安卓模拟器上写的客户端,代码如下:
服务端:
ServerSocket ss = new ServerSocket(9090);
Socket socket = ss.accept();
ObjectOutputStream oos = new ObjectOutputStream(
socket.getOutputStream());
oos.writeObject("HELLO");
socket.sendUrgentData(0xff);
oos.writeObject("hello");
System.out.println("已经发出");
oos.flush();
oos.close();
} catch (Exception e) {
e.printStackTrace();
}


客户端:
new Thread() {
public void run() {
try {
Socket socket = new Socket("192.168.56.1", 9090);

                ObjectInputStream in = new ObjectInputStream(
                        socket.getInputStream());

                Log.i("myprint", (String) in.readObject());
                Log.i("myprint", (String) in.readObject());

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }.start();

结果客户端只收到了第一个字符串,没收到第二个字符串,而服务端已经发送完毕,关闭了 。 我去掉socket.sendUrgentData(0xff);这一行 则两个字符串都可以收到。。
请问是什么原因

Log.i("myprint", (String) in.readObject());
Log.i("myprint", (String) in.readObject());//这次是接收空的,没有数据的
//再加上一行
Log.i("myprint", (String) in.readObject());