вообщем использую XmlPullParser, на вход даю ему InputStream, который получаю так
GetXml = new Thread(new Runnable() {
public void run() {
try {
sPref = getSharedPreferences("Options",MODE_WORLD_READABLE);
ServerSocket servsock = new ServerSocket(sPref.getInt("Port", 0));
while (true) {
Socket sock = servsock.accept();
InputStream is = sock.getInputStream();
h.sendMessage(h.obtainMessage(XML,is));
}
} catch(Exception e){
Log.d(LOG_TAG,"123" + e.getMessage());
}
}
});
GetXml.start();
после получения отправляю InputStream в Handler и от туда вызывается процедура парсинга
Проблема такая: он обрабатывает все норм, но только после того, как клиент закрывает соединение, а до закрытия, т.е. по ходу получения не хочет.
вопрос про xmlPullParser и InputStream в Thread
Re: вопрос про xmlPullParser и InputStream в Thread
что то мне подсказывает что ты не правильно организовываешь клиент-сервер, я когда писал почтовик клиент-сервер на яве, поищу исходники, а то уже сокеты и сам не помню
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: вопрос про xmlPullParser и InputStream в Thread
Всё вроде повторил. Значит вот что я скажу, видно только малая часть картины ибо кода нету и по этому буду гадать. Самое вероятное здесь то что как я говорил ты не правильно немножко организовал... В хендлер нужно передавать сам сокет, с которым ты уже проделываешь требуемую работу, а ты передаешь только InputStream, и не понятно закрываешь вообще сокет (исходя из того кода который предоставил - нет).
Так что будет весь код - будет решение твоей проблемы.
Так что будет весь код - будет решение твоей проблемы.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: вопрос про xmlPullParser и InputStream в Thread
хорошо, переделал сам InputStream на Socket в хэндлере, из хэндлера запускается парсинг, а там сокет закрывать можно сразу же после того как парсингу задал setInput от сокета?
xpp.setInput(sock.getInputStream(),null);
sock.close();
просто у меня так, работает..) я потестю еще, если оно будет работать, то спасибо вам огромное, вроде ходил вокруг да около, а щас только заработало)
xpp.setInput(sock.getInputStream(),null);
sock.close();
просто у меня так, работает..) я потестю еще, если оно будет работать, то спасибо вам огромное, вроде ходил вокруг да около, а щас только заработало)
Re: вопрос про xmlPullParser и InputStream в Thread
просто объясню суть работы клиент-серверного приложения: вы в цикле while ждёте подключения любого юзера к вам servsock.accept() , сервер работает в отдельном потоке, потом нужно полученный сокет передать в отдельный поток где уже работать с клиентом до его отключения. А в вашем примере вы передаёте в поток только входную (InputStream) информацию а не сам сокет, вот это меня и насторожило. А так о чём то трудно судить потому как видно лишь кусок кода.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: вопрос про xmlPullParser и InputStream в Thread
спасибо, сделал, примерно как вы сказали)