We have an Android networking application using the Android C NDK. It works well (both UDP and TCP) until we tested it on some 4.0.3 and 4.0.4 devices. With some 4.0.3/4 devices using TCP, the app sometimes can't receive server messages. UDP continues to work as expected.
The symptom is: When server has significant traffic to send to my app, the app receives (using recv(...)) the messages in bundled manner, i.e. recv() retrieves multiple incoming messages (the last one sometimes being incomplete, this is fine because my app keeps it and waits for rest of message in future recv()). After this bundled recv, sometimes my app no longer receives incoming messages, although wireshark shows that send still went through. Note that: * It doesn't always fail. However when it fails, the most recently received message was a bundled one. * Bundle size doesn't seem to matter. Sometimes bigger bundle (e.g. 2471 bytes) might succeed, while a bundle of 1448 may be followed by a stuck recv() * After the bundled recv(), my app does perform new recv, just no data returned Appreciate your help. Rob -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

