Re[4]: как узнать сколько байт записано в OutputStream
От: Alexandr.Martynov http://amartyno.blogspot.com/
Дата: 28.09.06 15:11
Оценка:
Здравствуйте, Donz, Вы писали:

D>Здравствуйте, Alexandr.Martynov, Вы писали:


AM>>>>есть клиент, который общается с сервером через сокеты, но в ходе разработки возникла задача узнать сколько байт было записано в поток (из-за того что сервер очень не стабилен и периодически отваливается).


А>>>Наверное более полезно знать, сколько байт получено на сервере. Запись в поток еще не означает их получение.


AM>>и тот и тот вариант подойдет. Моя задача убедится что информация ушла, а дошла она или нет это проблема скорее администратора сети на стороне клиента.


D>Если работаешь через сокеты, то значит используешь стек TCP. В TCP пакеты или доходят в той же очередности, что и уходили от клиента, или ты в приложении получишь ошибку передачи данных (IOException), если я не ошибаюсь


в том-то и дело что ошибок никаких не выскакивает, а вот в момент вызова функции read все зависает

...

sock.setSoTimeout(0);

...

InputStream in = sock.getInputStream();

byte[] c = new byte[1];

in.read(c); //дальше программа не выполняется и текст "Done." на экран не выводится.

System.out.println("Done.");


in.available(); всегда возвращает 0.

собственно поэтому и хочу узнать а было ли что-то записано.

P.S. никакой возможно посмотреть что творится на сервере у меня нет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.