Sziasztok!
Egy Androidos alkalmazáson dolgozom, ami Tcp Socket-tel kommunikál egy C# (Mono) alkalmazással.
A gond az, hogy amíg a C# alkalmazásban tökéletesen működnek az Androidról elküldött stringek, addig visszafelé ez már nem mondható el.
#############
Android:
PrintWriter output = new PrintWriter(socket.getOutputStream());
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
output.println("hi");
output.flush();
msg = input.readLine();
if(msg == "hi") {
}
output.close();
input.close();
s.close();
##############
C#:
msg = System.Text.Encoding.UTF8.GetBytes("hi\n");
so.Client.Send(msg);
##########
Lényeg, hogy az Androidos app küld egy "hi" stringet a C# app-nak, ami visszaüzen ugyancsak egy "hi" stringet.
A gond az, hogy az Androidos kódban az if(msg == "hi") false értéket ad vissza és nem értem miért. Lehet már túl fáradt vagyok hozzá...
Előre is köszönöm az ötleteket. :)
- 4180 megtekintés
Hozzászólások
Java-ban String-et nem ==-vel hasonlítunk össze, mert az a referenciát vizsgálja, hanem equals()-szal.
if ("hi".equals(msg))
Másrészt egyáltalán nem biztos, hogy a default kódolás UTF-8. Érdemes beállítani az írása és az olvasásra is.
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen, tényleg ez a hiba.
- A hozzászóláshoz be kell jelentkezni