webForumDet fria alternativet

Kommunikation mellan javaprogram

Java

3 svar · 563 visningar · startad av front

Medlem sedan aug. 2000380 inlägg
Frågan#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.

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)