Threads for networking and DatagramSocket

by Lex » Wed, 29 Jul 2009 18:42:27 GMT

Sponsored Links
 My Android app is exchanging traffic messages via UDP with a server -
binary messages of up to 60 Bytes. The server I'm using (external,
don't have access to code nor can I convince the developer to change
stuff :( ) is identifying the clients solely through sockets (no other
type of client ID whatsoever), so I need to use the same socket for
receiving and sending. My initial plan was to use separate Threads for
receiving and sending data. The network load depends on the traffic
situation - sometimes there might be a lot of messages coming in,
sometimes only a few. The client also needs to send periodic keep-
alive messages, which are simple, 10 character strings. Now the
problem is that Java's DatagramSocket.receive method() is synchronized
and also blocking as long as there is data to receive, so my sending
thread cannot use the socket for sending anything, which results in
the server kicking off the client because there's no response coming.

My question is, how bad (or not bad) do you think will rejecting the
threads and doing all the networking as described above in the UI
thread be? Of course, if you also have suggestions on how to overcome
the issue, it will be greatly appreciated!



Threads for networking and DatagramSocket

by Roman » Wed, 29 Jul 2009 23:06:49 GMT

 I recommend to keep your data communication separate from the UI. The
UI should be responsive as possible and you don't want to have any
blocking on this level. In general data connectivity is not
predictable and in worse case you are waiting for a response from the
network and blocking your whole UI. For example how would you
interrupt your data communication from UI perspective when you handle
data communication within the UI and your UI is blocked?

Roman Baumgaertner
Sr. SW Engineer-OSDC
T  Mobile stick together
The views, opinions and statements in this email are those of the
author solely in their individual capacity, and do not necessarily
represent those of T-Mobile USA, Inc.


Sponsored Links

Threads for networking and DatagramSocket

by Lex » Thu, 30 Jul 2009 21:47:09 GMT

 Thank You for your advice, Roman. There's a detailed post about my
issue on the Java Sun Forum: ;#10779608



Other Threads

1. Starting app not listed in launcher


is there a way to run an application that is not listed in the  
launcher app?

I downloaded the Android source code and build it. I found that there  
is an app called Term.apk but there is no launcher entry. How can I  
start it on the emulator?



2. Working of locationListener() in Android DEV Phone...

 i need to know about the LocationListener() working in the Android
DEV Phone(ADP1)

Does it expect  the user(device) to move in order to update the
current location details or it automatically updates when ever the gps
is enabled?

Another query is regarding the getLastKnownLocation().....

When is that last known location will be lost and thus returns null...



3. Face Detection

4. question about WebView and MapView

5. Enabling PV logging in Opencore2.0

6. How to determine requirements for porting Android?

7. HttpURLConnection returns corrupt data on Dev phone