hej,
mam nastepujacy problem (aplikacja na telefon). po polaczeniu sie z serwerem, musze mu wyslac ramke, a potem odebrac od niego odpowiedz. Polaczenie i wysylanie ramki jest ok, jednak nie moge nic odebrac. Przedstawie moze wpierw fragment kodu:
private SocketConnection _sc = null;
private DataInputStream _is;
private DataOutputStream _os;
public void send() {
_sc = getConnect();
try{
_os = _sc.openDataOutputStream();
_is = _sc.openDataInputStream();
//send first frame; gdzie 'ramka.sendFirstFrame() zwraca
//ramke w postaci byte[]
sendData(_ramka.sendFirstFrame());
try {
//odbierz odp od serwera
getResp();
} catch(Exception e){}
} catch(Exception e){}
}//koniec metody send()
//connect with server
public SocketConnection getConnect(){
try{
_sc = (SocketConnection)Connector.open("adres");
return _sc;
} catch(Exception e) { System.exit(0);
return null; }
}else { return null; }
}//end of getConnect method
public boolean sendData(byte[] _b){
int length = _b.length;
try{
_os.write(_b, 0, length);
return true;
} catch(Exception e){return false; }
}//koniec sendData
public boolean getResp(){
byte[] _input = new byte[32];
try{
for(int ii = 0; ii < _input.length; ii++){
_input[ii] = (byte)_is.read();
}
return true;
} catch(Exception e){ return false;}
}
i wyglada to tak, ze wpierw aplikacja wisi dosc dlugo,potem dostaje odpowiedz ze polaczenie ok (usunelam to z przykladowego kodu,by nie zasmiecac), ze pierwsza ramka wyslana, a w miejscu gdzie powinna byc odebrana odpowiedz, dostaje:
java.io.InterruptedIOException: Local connection timed out after ~ 120000
nie mam pojecia czemu.kombinowalam i testowalam i to linijka: _is.read() powoduje to dzialanie. W jaki sposob moge odczytac te odpowiedz od serwera?
bede wdzieczna za wszelkie wskazowki,
pzdr,
misty