0

我有一个关于 Android 客户端 Socket 的问题

我的目标服务器不会每秒都发送消息,但是当事情发生时

服务器会将一些字符串推送到我的 Android 手机

服务器工作正常,因为我的 iOS 应用工作正常

但在 android 中,我只收到消息 - 200 OK

但以下消息不会进来

即使服务器已经推送了一些字符串

这是我打开套接字的代码

public void _openSocket() throws UnknownHostException, IOException{
    StringBuilder sb = new StringBuilder();
    String Stream = "GET /audio.event HTTP/1.1\r\n";
    String Stream2 = "Host: 192.168.30.1\r\n";
    String Stream3 = "\r\n";
    sb.append(Stream);
    sb.append(Stream2);
    sb.append(Stream3);

    Log.i("ray", "Connecting Socket...");
    Socket socket = new Socket("192.168.30.1",80);
    InputStream inputStream = socket.getInputStream();
    BufferedReader is = new BufferedReader(new InputStreamReader(
            inputStream));
    DataOutputStream os = null;
    os = new DataOutputStream(socket.getOutputStream());
    os.write(sb.toString().getBytes());
    String data = is.readLine();
    Log.i("data", data);
}

谁能告诉我我错过了什么?

感谢您的大力帮助!

4

1 回答 1

0

添加第二行:

os.write(sb.toString().getBytes());
os.flush();

这将导致数据包被发送。否则,服务器将等待数据包大到足以“值得”发送

于 2013-04-30T15:17:06.270 回答