Ich habe 2 Sockets verbinden und eine Datei senden. Ich möchte irgendwann ein Signal an die zweite Buchse senden. Ich dachte an das Senden einer Zeichenfolge "Start" und wenn der Empfänger-Socket es bekommt, führe ich etwas aus. Unten ist der Code für Empfänger und Absender. Was mache ich falsch? Der Empfänger bekommt nie den "Start" und ich bin sicher, dass er gesendet wird.Eine Zeichenfolge zwischen den Sockets zwischen den Bytes senden
DankSenderseite:
byte[] buff = new byte[1024 * 50];
while (isRunning && (readBytes = data.read(buff, 0, buff.length)) != -1) {
client.getOutputStream().write(buff, 0, readBytes);
if(sendStart){
client.getOutputStream().("start".getBytes("UTF-8"), 0, "start".getBytes("UTF-8").length);
sendStart = false;
}
}
Empfängerseite:
DataInputStream in = null;
try {
in = new DataInputStream(socket.getInputStream());
} catch (IOException e) {
}
byte buffer[] = new byte[1024 * 50];
while ((len = in.read(buffer)) != -1) {
String received = new String(buffer, "UTF-8");
if(received!=null && received.equals("start")){
Log.d(TAG,"received start");
//do something
}
receivedFile.write(buffer, 0, len);
}
was ist 'in'? irgendein Fehler? – njzk2
@ njzk2 in ist der DataInputStream (Ich habe die Frage bearbeitet). Kein Fehler. Die empfangene Zeichenfolge ist Kauderwelsch. –
Sie beginnen mit dem Senden des Inhalts von 'Daten' wofür ist das? – njzk2