Aus dem Hauptthread meiner App, versuche ich String-Nachrichten zu senden, die an TCPClient gesendet werden, wird kontinuierlich über den Socket senden.Fehler beim Senden der String-Nachricht an Handler: String kann nicht in int konvertiert werden
Das ist mein TCPClient:
public class TCPClient extends Thread
{
String ip;
int port;
PrintWriter out;
Handler handler;
TCPClient(String ip, int port)
{
this.ip = ip;
this.port = port;
try
{
Socket socket = new Socket(ip,port);
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
}catch (Exception e)
{
Log.d("OKLINUX","Exception while creating socket");
e.printStackTrace();
}
}
public void run()
{
Looper.prepare();
handler = new Handler(){
public void handleMessage(Message msg)
{
Log.d("OKLINUX","Data sent : "+msg.arg1);
out.println(msg.arg1);
out.flush();
}
};
Looper.loop();
}
}
Auf meinem Haupt-Thread:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sender = new TCPClient("192.168.0.7",2016);
sender.start();
//some other code
Message msg = Message.obtain();
msg.arg1 = "some string"; //this line gives error
sender.handler.sendMessage(msg);
}
Wie kann ich die Zeichenfolge übergeben?
Wo möchten Sie eine Zeichenfolge übergeben? – Puneet
'public int arg1; 'ist eine Zeile aus dem Quelltext der Nachricht. 'arg1' und' arg2' sind kostengünstigere Alternativen zur Verwendung von setData(), wenn Sie nur einige ganzzahlige Werte speichern müssen. Das heißt, Sie können nur Integer speichern, nicht String in der Variablen arg1. – Jimmy