无法读取果冻豆上的套接字输入流
2022-09-02 11:04:57
我有一个TCP套接字连接,在Android 2.3上运行良好,但现在在Android 4.1上面临一些问题。问题在于 InputStream.read() 方法总是返回 -1(不阻塞),就像连接关闭一样。
创建套接字:
SocketFactory socketFactory = SocketFactory.getDefault();
Socket socket = socketFactory.createSocket("c.whatsapp.net", 5222);
socket.setSoTimeout(3*60*1000);
socket.setTcpNoDelay(true);
检索输入和输出流并写入一些初始数据:
InputStream inputStream = new BufferedInputStream(socket.getInputStream());
OutputStream outputStream = new BufferedOutputStream(socket.getOutputStream());
outputStream.write(87);
outputStream.write(65);
outputStream.write(1);
outputStream.write(2);
outputStream.flush();
然后,此条件始终通过而不阻塞:
int c = inputStream.read();
if (c < 0) {
Log.d(TAG, "End of stream");
}
此代码在后台线程中运行。它正在研究姜饼。
尝试使用 InputStreamReader 和 OutputStreamWriter 而不是直接流 - 没有效果。