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

Reply via email to