KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a TCP socket connection which works well on Android 2.3 but now facing some problems on Android 4.1. The problem is that InputStream.read() method always returns -1 (without blocking), like the connection is closed. Creating socket: SocketFactory socketFactory = SocketFactory.getDefault(); Socket socket = socketFactory.createSocket("c.whatsapp.net", 5222); socket.setSoTimeout(3*60*1000); socket.setTcpNoDelay(true); Retrieving input and output streams and writing some initial data: 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(); Then, this condition always passes without blocking: int c = inputStream.read(); if (c < 0) { Log.d(TAG, "End of stream"); } This code is running in a background thread . And it was working on Gingerbread. Tried to use InputStreamReader and OutputStreamWriter instead of direct streams - no effect.
Tags (comma-separated)
Save Edits
Cancel