palaber
Captain
- Registriert
- Juni 2006
- Beiträge
- 3.856
He Hallo nochmal,
gleicher Tag neues Problem. Und zwar hab ich eine Schleife laufen, die mir Daten aus nem Stream holt und in diesen schreibt. Das geht soweit auch. Nur nicht richtig^^
Jetzt zum konkreten Problem. Ich habe einen Server, der schickt eine Nachricht an meinen Client. Wenn die Nachricht im Client angekommen ist soll vom Client an den Server eine Nachricht gesendet werden. Diese wird vom Server empfangen.
Erst wenn diese Nachricht im Server ist, soll der Server die Schleife neu durchlaufen. Beim Server klappt das, beim Client irgendwie nicht. Und ich komm da momentan nicht weiter. Hab ich irgendwo nen Denkfehler? Hier mal der betreffende Code:
Client Schleife:
Dann noch die beiden aufgerufen Methoden:
Irgendwie läuft die Schleife aufm Client öferts - es wird öfters eine Nachricht gesendet als empfangen. Eigenlich sollte immer eine Nachricht empfangen werden und dann gesendet werden.
gleicher Tag neues Problem. Und zwar hab ich eine Schleife laufen, die mir Daten aus nem Stream holt und in diesen schreibt. Das geht soweit auch. Nur nicht richtig^^
Jetzt zum konkreten Problem. Ich habe einen Server, der schickt eine Nachricht an meinen Client. Wenn die Nachricht im Client angekommen ist soll vom Client an den Server eine Nachricht gesendet werden. Diese wird vom Server empfangen.
Erst wenn diese Nachricht im Server ist, soll der Server die Schleife neu durchlaufen. Beim Server klappt das, beim Client irgendwie nicht. Und ich komm da momentan nicht weiter. Hab ich irgendwo nen Denkfehler? Hier mal der betreffende Code:
Client Schleife:
Code:
while(bRun)
{
boolean sendOk = btClient.getStream();
if(sendOk)
{
String sTmp = btClient.getSOut();
threadComHandler.obtainMessage(1, sTmp).sendToTarget();
counterEmpfangen++;
boolean bGesendet = btClient.sendStream("0");
if(bGesendet)
{
counterGesendet++;
}
}
else
{
cancelConnect();
}
counterGesamt++;
}
Dann noch die beiden aufgerufen Methoden:
Code:
public boolean getStream()
{
int iAnzahlBytes;
byte[] inByteArray = new byte[1024];
try
{
iAnzahlBytes = mmInStream.read(inByteArray);
if (iAnzahlBytes > 0)
{
sOut = new String(inByteArray);
return true;
}
return false;
}
catch(IOException e)
{
sOut = e.toString();
return false;
}
}
Code:
public boolean sendStream(String s)
{
byte[] outByteArray = new byte[1];
try
{
outByteArray = s.getBytes();
mmOutStream.write(outByteArray);
mmOutStream.flush();
return true;
}
catch(IOException e) {return false;}
}
Irgendwie läuft die Schleife aufm Client öferts - es wird öfters eine Nachricht gesendet als empfangen. Eigenlich sollte immer eine Nachricht empfangen werden und dann gesendet werden.