Hi, in my application I need to send and receive data bytewise over TCP. At the beginning of development I tried to implement that functionality as resource-efficient as possible. So I finally decided to use messages (android.os.Message) to cyclically initiate reading bytes from socket. After establishing the connection I assign Input- and OutputStream and order Android to execute the runnable "readFromSocket" after 100ms:
OutputStream out = null; InputStream in = null; Handler readInputHandler; Socket gateway = new Socket(); gateway.connect(new InetSocketAddress(address, port), 20000); if (gateway.isConnected()) { in = gateway.getInputStream(); out = gateway.getOutputStream(); readInputHandler.postDelayed(readFromSocket, 100); } The runnable reads one byte after another and passes it to a parser that tries to assemble the single bytes to an instruction (on success, I send it encapsulated in a Message to a Controller-Object). Finally the runnable orders its own execution after another 100ms. private Runnable readFromSocket = new Runnable() { byte[] input = new byte[1]; @Override public void run() { try { while (in.available() > 0) { in.read(input); parser.parse(input[0]); } } catch (IOException e) { e.printStackTrace(); } // Initiate reading after 100 ms readInputHandler.postDelayed(this, 100); } }; After testing my app on two different devices (Sony Ericsson Xperia neo and Acer Iconia Tab) I currently hesitate whether my implementation is the best solution... When sending many bytes to the Xperia neo, seconds elapse between sending and receiving/processing those data. In comparison, on the Iconia Tab there arent't such big delays but the performance also isn't very good. How would you implement that functionality? Thanks in advance. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en