Kommunikation mellan javaprogram

Java

3 svar · 574 visningar · startad av front

Medlem sedan aug. 2000380 inlägg
Trådstart#1

Jag har en javaklient som ska skicka över text och binär data över internet till en javaserver.
Klienten är en midlet, så den kommer köras på en platform med små resurser.

Hur ska jag sköta kommunikationen?
Har kollat på lite sexiga lösningar med XML och RMI, men det känns inte som dom passar till detta.

Just nu har jag ett protokoll där jag skriver en String som kommando och sedan data i olika former, likt detta:

FILE
<String>
SIZE
<long>
DATA
<byte[]>

På serversidan tar jag emot kommandot och behandlar det såhär:

String command = in.readUTF();

if (command.equals("FILE")) {
 file = in.readUTF();
 ...
} else if (command.equals("SIZE")) {
 size = in.readLong();
 ...
 if (command.equals("DATA")) {
  ...
 }
}

Även om det fungarar så känns det fult gjort med en massa "if" och "else if".
Men det kanske är så man gör?

Medlem sedan sep. 2001961 inlägg
#2

Jag skulle använda XML och Apache Commons Digester.

Medlem sedan aug. 2000380 inlägg
#3

Tack för svaret. Jag tittade lite på den lösningen, men det betyder att jag måste Base64-koda den binära datan.
Även om en mobiltelefon klarar av att Base64-koda runt 2 MB data så skulle jag hellst vilja undvika det.

Medlem sedan aug. 2000380 inlägg
#4

Har insett att XML och Commons Digester, trots lite extra proccessande på klienten, är den bästa lösningen.

280 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
143 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)