Also irgendwas mache ich falsch. Mit dem flush will er nicht wirklich arbeiten.
Wenn ich mit dem Empfänger debugge zeigt er mir nämlich nicht mal an das eine Verbindung ankommt.
Beim Sender klappt beim debuggen aber alles und er versendet es auch so wie ich es will.
Wenn ich aber close benutze kommt auch etwas beim Empfänger an.
Das mit den Zahlen am Anfang vom Array habe ich jetzt erstmal so gelassen.
Sender[code]String str = et.getText().toString();
byte[] datas = new byte[str.getBytes().length+3];
byte[] text = str.getBytes();
datas[0] = (byte) (text.length+2);//Länge wir angefügt
datas[1] = 88;
datas[2] = 123;
for(int i = 3; i < datas.length; i++){
datas[i] = text[i-3];
}
BufferedOutputStream os;
os = new BufferedOutputStream(socket.getOutputStream());
os.write(datas);
os.flush();[/code]
Empfänger[code]stream = new BufferedInputStream(s.getInputStream());
final byte[] bytes = readFully(stream);
if(bytes[1] == 88 && bytes[2] == 123){
String st = null;
byte[] text = new byte[bytes.length-3];
for(int i = 0; i < bytes.length-3; i++){
text[i] = bytes[i+3];
}
st = new String(text);
mClientMsg = st;
myUpdateHandler.sendMessage(m);
}
public byte[] readFully(InputStream input) throws IOException
{
byte[] buffer2 = new byte[4096];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = input.read(buffer2)) != -1)
{
output.write(buffer2, 0, bytesRead);
}
output.flush();//Hiermit versuche ich an die Anzahl zu kommen
int count = output.toByteArray()[0];//Der Code von impjor um das byteArray mit der Länge des Textes zu bekommen
byte[] buffer = new byte[count];
for (int i = 0; i < count; i++) {
buffer[i] = (byte) input.read();
}
return buffer;
}[/code]
Edit: Beim debuggen hab ich jetzt herausgefunden das er beim Sender hier hängen bleibt:
1ByteArrayOutputStream output = new ByteArrayOutputStream();
2 while ((bytesRead = input.read(buffer2)) != -1)
3 {
4 output.write(buffer2, 0, bytesRead);
5 }
Den OutputStream baut er noch auf aber dann kommt er beim debuggen nicht weiter
— geändert am 02.03.2014, 14:11:16
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.