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. Adding a new java files or folder in framework


I want to add some new files in framework under telephony pkg. I may
also add new pkg in telephony pkg. I want to know what changes need to
be done before rebuilding the source code. So that i can see the

Do i need to make changes in ? if yes then what are the
changes ?


2. select inbox message rows with buttons

Hi, I know the title it doesn't explain my problem exactily. It's
better explain it with an example.
I want put up-down arrows over inbox activity. I can select each row
in the inbox message list pressing up or down arrow.

I'd tried it showing two activities at time starting a new thread, but
I can't get it. However, if I could put my arrows another problem
appears: how can I tell inbox activity focus his rows?

Then, I thought maybe I resolve my problem installing NDK, but I have
a lot of problems installing it.

Finally, you could think, another solution could be manage myself
inbox message list; but this is not an scalable solution for me.

I expect somebody can help me. Thanks.


3. Not sure where to find out how to do this - the "Busy" spinning icon

4. some questions about using gdbserver and JNI libraries

5. ScrollView Layout/Gravity Problem

6. Clear Activity stack?

7. SDK installation problems on Vista